%!PS-Adobe-2.0
%%Creator: dvips(k) 5.92b Copyright 2002 Radical Eye Software
%%Title: manual.dvi
%%Pages: 127
%%PageOrder: Ascend
%%BoundingBox: 0 0 596 842
%%DocumentFonts: CMR12 CMR17 CMR10 CMTI10 CMBX12 CMBX10 CMTT10 CMR7
%%+ CMBXTI10 CMSY10 CMTT12 CMSY7 CMMI10 CMMI7 CMR9 CMR6 CMTT9
%%EndComments
%DVIPSWebPage: (www.radicaleye.com)
%DVIPSCommandLine: dvips manual
%DVIPSParameters: dpi=1200, compressed
%DVIPSSource:  TeX output 2005.05.22:1634
%%BeginProcSet: texc.pro
%!
/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72
mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0
0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{
landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize
mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[
matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round
exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{
statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0]
N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin
/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array
/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2
array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N
df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A
definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get
}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub}
B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr
1 add N}if}B/id 0 N/rw 0 N/rc 0 N/gp 0 N/cp 0 N/G 0 N/CharBuilder{save 3
1 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx
0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx
sub Cy .1 sub]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{
rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp
gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B
/chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{
/cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{
A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy
get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse}
ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp
fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17
{2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add
chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{
1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop}
forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn
/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put
}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{
bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A
mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{
SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{
userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X
1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4
index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{
/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT)
(LaserWriter 16/600)]{A length product length le{A length product exch 0
exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse
end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask
grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot}
imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round
exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto
fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p
delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M}
B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{
p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S
rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end

%%EndProcSet
%%BeginProcSet: f7b6d320.enc
% Thomas Esser, Dec 2002. public domain
%
% Encoding for:
%     cmb10 cmbx10 cmbx12 cmbx5 cmbx6 cmbx7 cmbx8 cmbx9 cmbxsl10
%     cmdunh10 cmr10 cmr12 cmr17cmr6 cmr7 cmr8 cmr9 cmsl10 cmsl12 cmsl8
%     cmsl9 cmss10cmss12 cmss17 cmss8 cmss9 cmssbx10 cmssdc10 cmssi10
%     cmssi12 cmssi17 cmssi8cmssi9 cmssq8 cmssqi8 cmvtt10
%
/TeXf7b6d320Encoding [
/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /Omega
/ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute /caron /breve
/macron /ring /cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash
/suppress /exclam /quotedblright /numbersign /dollar /percent /ampersand
/quoteright /parenleft /parenright /asterisk /plus /comma /hyphen
/period /slash /zero /one /two /three /four /five /six /seven /eight
/nine /colon /semicolon /exclamdown /equal /questiondown /question /at
/A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X
/Y /Z /bracketleft /quotedblleft /bracketright /circumflex /dotaccent
/quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u
/v /w /x /y /z /endash /emdash /hungarumlaut /tilde /dieresis /suppress
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space
/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /.notdef
/.notdef /Omega /ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute
/caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE
/OE /Oslash /suppress /dieresis /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
] def

%%EndProcSet
%%BeginProcSet: 74afc74c.enc
% Thomas Esser, Dec 2002. public domain
%
% Encoding for:
%     cmbxti10 cmff10 cmfi10 cmfib8 cmti10 cmti12 cmti7 cmti8cmti9 cmu10
%
/TeX74afc74cEncoding [
/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /Omega
/ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute /caron /breve
/macron /ring /cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash
/suppress /exclam /quotedblright /numbersign /sterling /percent
/ampersand /quoteright /parenleft /parenright /asterisk /plus /comma
/hyphen /period /slash /zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon /exclamdown /equal /questiondown /question
/at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft /quotedblleft /bracketright /circumflex /dotaccent
/quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u
/v /w /x /y /z /endash /emdash /hungarumlaut /tilde /dieresis /suppress
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space
/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /.notdef
/.notdef /Omega /ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute
/caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE
/OE /Oslash /suppress /dieresis /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
] def

%%EndProcSet
%%BeginProcSet: 09fbbfac.enc
% Thomas Esser, Dec 2002. public domain
%
% Encoding for:
%     cmsltt10 cmtt10 cmtt12 cmtt8 cmtt9
/TeX09fbbfacEncoding [
/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi
/Omega /arrowup /arrowdown /quotesingle /exclamdown /questiondown
/dotlessi /dotlessj /grave /acute /caron /breve /macron /ring /cedilla
/germandbls /ae /oe /oslash /AE /OE /Oslash /visiblespace /exclam
/quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft
/parenright /asterisk /plus /comma /hyphen /period /slash /zero /one
/two /three /four /five /six /seven /eight /nine /colon /semicolon /less
/equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N
/O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright
/asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l
/m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright
/asciitilde /dieresis /visiblespace /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /space /Gamma /Delta /Theta /Lambda /Xi /Pi
/Sigma /Upsilon /Phi /Psi /.notdef /.notdef /Omega /arrowup /arrowdown
/quotesingle /exclamdown /questiondown /dotlessi /dotlessj /grave /acute
/caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE
/OE /Oslash /visiblespace /dieresis /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
] def

%%EndProcSet
%%BeginProcSet: bbad153f.enc
% Thomas Esser, Dec 2002. public domain
%
% Encoding for:
%     cmsy10 cmsy5 cmsy6 cmsy7 cmsy8 cmsy9
%
/TeXbbad153fEncoding [
/minus /periodcentered /multiply /asteriskmath /divide /diamondmath
/plusminus /minusplus /circleplus /circleminus /circlemultiply
/circledivide /circledot /circlecopyrt /openbullet /bullet
/equivasymptotic /equivalence /reflexsubset /reflexsuperset /lessequal
/greaterequal /precedesequal /followsequal /similar /approxequal
/propersubset /propersuperset /lessmuch /greatermuch /precedes /follows
/arrowleft /arrowright /arrowup /arrowdown /arrowboth /arrownortheast
/arrowsoutheast /similarequal /arrowdblleft /arrowdblright /arrowdblup
/arrowdbldown /arrowdblboth /arrownorthwest /arrowsouthwest /proportional
/prime /infinity /element /owner /triangle /triangleinv /negationslash
/mapsto /universal /existential /logicalnot /emptyset /Rfractur /Ifractur
/latticetop /perpendicular /aleph /A /B /C /D /E /F /G /H /I /J /K
/L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /union /intersection
/unionmulti /logicaland /logicalor /turnstileleft /turnstileright
/floorleft /floorright /ceilingleft /ceilingright /braceleft /braceright
/angbracketleft /angbracketright /bar /bardbl /arrowbothv /arrowdblbothv
/backslash /wreathproduct /radical /coproduct /nabla /integral
/unionsq /intersectionsq /subsetsqequal /supersetsqequal /section
/dagger /daggerdbl /paragraph /club /diamond /heart /spade /arrowleft
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/minus /periodcentered /multiply /asteriskmath /divide /diamondmath
/plusminus /minusplus /circleplus /circleminus /.notdef /.notdef
/circlemultiply /circledivide /circledot /circlecopyrt /openbullet
/bullet /equivasymptotic /equivalence /reflexsubset /reflexsuperset
/lessequal /greaterequal /precedesequal /followsequal /similar
/approxequal /propersubset /propersuperset /lessmuch /greatermuch
/precedes /follows /arrowleft /spade /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
] def

%%EndProcSet
%%BeginProcSet: aae443f0.enc
% Thomas Esser, Dec 2002. public domain
%
% Encoding for:
%     cmmi10 cmmi12 cmmi5 cmmi6 cmmi7 cmmi8 cmmi9 cmmib10
%
/TeXaae443f0Encoding [
/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /Omega
/alpha /beta /gamma /delta /epsilon1 /zeta /eta /theta /iota /kappa
/lambda /mu /nu /xi /pi /rho /sigma /tau /upsilon /phi /chi /psi
/omega /epsilon /theta1 /pi1 /rho1 /sigma1 /phi1 /arrowlefttophalf
/arrowleftbothalf /arrowrighttophalf /arrowrightbothalf /arrowhookleft
/arrowhookright /triangleright /triangleleft /zerooldstyle /oneoldstyle
/twooldstyle /threeoldstyle /fouroldstyle /fiveoldstyle /sixoldstyle
/sevenoldstyle /eightoldstyle /nineoldstyle /period /comma /less /slash
/greater /star /partialdiff /A /B /C /D /E /F /G /H /I /J /K /L /M /N
/O /P /Q /R /S /T /U /V /W /X /Y /Z /flat /natural /sharp /slurbelow
/slurabove /lscript /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p
/q /r /s /t /u /v /w /x /y /z /dotlessi /dotlessj /weierstrass /vector
/tie /psi /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/space /Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi
/.notdef /.notdef /Omega /alpha /beta /gamma /delta /epsilon1 /zeta /eta
/theta /iota /kappa /lambda /mu /nu /xi /pi /rho /sigma /tau /upsilon
/phi /chi /psi /tie /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef
] def

%%EndProcSet
%%BeginProcSet: texps.pro
%!
TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2
index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll
exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]FontType 0
ne{/Metrics exch def dict begin Encoding{exch dup type/integertype ne{
pop pop 1 sub dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get
div def}ifelse}forall Metrics/Metrics currentdict end def}{{1 index type
/nametype eq{exit}if exch pop}loop}ifelse[2 index currentdict end
definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{dup
sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1 roll
mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def dup[
exch{dup CharStrings exch known not{pop/.notdef/Encoding true def}if}
forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def}def
end

%%EndProcSet
%%BeginProcSet: special.pro
%!
TeXDict begin/SDict 200 dict N SDict begin/@SpecialDefaults{/hs 612 N
/vs 792 N/ho 0 N/vo 0 N/hsc 1 N/vsc 1 N/ang 0 N/CLIP 0 N/rwiSeen false N
/rhiSeen false N/letter{}N/note{}N/a4{}N/legal{}N}B/@scaleunit 100 N
/@hscale{@scaleunit div/hsc X}B/@vscale{@scaleunit div/vsc X}B/@hsize{
/hs X/CLIP 1 N}B/@vsize{/vs X/CLIP 1 N}B/@clip{/CLIP 2 N}B/@hoffset{/ho
X}B/@voffset{/vo X}B/@angle{/ang X}B/@rwi{10 div/rwi X/rwiSeen true N}B
/@rhi{10 div/rhi X/rhiSeen true N}B/@llx{/llx X}B/@lly{/lly X}B/@urx{
/urx X}B/@ury{/ury X}B/magscale true def end/@MacSetUp{userdict/md known
{userdict/md get type/dicttype eq{userdict begin md length 10 add md
maxlength ge{/md md dup length 20 add dict copy def}if end md begin
/letter{}N/note{}N/legal{}N/od{txpose 1 0 mtx defaultmatrix dtransform S
atan/pa X newpath clippath mark{transform{itransform moveto}}{transform{
itransform lineto}}{6 -2 roll transform 6 -2 roll transform 6 -2 roll
transform{itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll
curveto}}{{closepath}}pathforall newpath counttomark array astore/gc xdf
pop ct 39 0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack}
if}N/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1
-1 scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3
get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip
yflip not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub
neg 0 TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{
noflips{TR pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop
90 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get
neg sub neg TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr
1 get neg sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr
2 get ppr 0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4
-1 roll add 2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S
TR}if}N/cp{pop pop showpage pm restore}N end}if}if}N/normalscale{
Resolution 72 div VResolution 72 div neg scale magscale{DVImag dup scale
}if 0 setgray}N/psfts{S 65781.76 div N}N/startTexFig{/psf$SavedState
save N userdict maxlength dict begin/magscale true def normalscale
currentpoint TR/psf$ury psfts/psf$urx psfts/psf$lly psfts/psf$llx psfts
/psf$y psfts/psf$x psfts currentpoint/psf$cy X/psf$cx X/psf$sx psf$x
psf$urx psf$llx sub div N/psf$sy psf$y psf$ury psf$lly sub div N psf$sx
psf$sy scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub
TR/showpage{}N/erasepage{}N/setpagedevice{pop}N/copypage{}N/p 3 def
@MacSetUp}N/doclip{psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll
newpath 4 copy 4 2 roll moveto 6 -1 roll S lineto S lineto S lineto
closepath clip newpath moveto}N/endTexFig{end psf$SavedState restore}N
/@beginspecial{SDict begin/SpecialSave save N gsave normalscale
currentpoint TR @SpecialDefaults count/ocount X/dcount countdictstack N}
N/@setspecial{CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs
neg 0 rlineto closepath clip}if ho vo TR hsc vsc scale ang rotate
rwiSeen{rwi urx llx sub div rhiSeen{rhi ury lly sub div}{dup}ifelse
scale llx neg lly neg TR}{rhiSeen{rhi ury lly sub div dup scale llx neg
lly neg TR}if}ifelse CLIP 2 eq{newpath llx lly moveto urx lly lineto urx
ury lineto llx ury lineto closepath clip}if/showpage{}N/erasepage{}N
/setpagedevice{pop}N/copypage{}N newpath}N/@endspecial{count ocount sub{
pop}repeat countdictstack dcount sub{end}repeat grestore SpecialSave
restore end}N/@defspecial{SDict begin}N/@fedspecial{end}B/li{lineto}B
/rl{rlineto}B/rc{rcurveto}B/np{/SaveX currentpoint/SaveY X N 1
setlinecap newpath}N/st{stroke SaveX SaveY moveto}N/fil{fill SaveX SaveY
moveto}N/ellipse{/endangle X/startangle X/yrad X/xrad X/savematrix
matrix currentmatrix N TR xrad yrad scale 0 0 1 startangle endangle arc
savematrix setmatrix}N end

%%EndProcSet
%%BeginFont: CMTT9
%!PS-AdobeFont-1.1: CMTT9 1.0
%%CreationDate: 1991 Aug 20 16:46:24
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMTT9) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch true def
end readonly def
/FontName /CMTT9 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /.notdef put
readonly def
/FontBBox{-6 -233 542 698}readonly def
/UniqueID 5000831 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
2BDBF16FBC7512FAA308A093FE5F00F963068B8232429ED8B7CF6A3D879A2D1E
2931CE5F5D18C658602059F07BE66E6EFC9239D7AB2FB8A4CBD41675B8ECF279
650C29E53B14AC0E392A664848C1844B1CECBB2D5CFB72D0916B675C9A9A1E35
F12696A6F628473C604A95376468E06E295AD6F76CEB939D94113532050B9D5A
D2F41A9EFB9424D986612313B89EFE9C8A71313340B248F6853B1EDBF02B7F9E
F447220FE131D7D54CFB8AA1281DBAEA73E665BACB1F164552CC0CEDB63BD4B1
4A9AE8AC6FA02242DBE8DA46B64B6BFC11762F0784F216FC8B9120D688D1705A
438B14F5E5DEAF2A98408B3B64620DE3732A4DAE6D08D5D97E34C75DAE19EABD
BA0796165C1151BCBFB1DF8D29A63A8300DBDB9E3323CB82D0337598B83F4F2B
A97CF5196D4D1CEC1EDB8966E548C0D9C194C932319610FB43EA1B86322FE641
AB48770FF13BD475A7267E142388563D1A400419C585B22A9886074687BEDF74
D905BE8EE440BA2ABF28EAB673399B7F129B9729DD5564C681954621903B84BB
CAF89AC5ADB2932472DF29ADA2BDBDB4D05F65F28F5F4C529613D61858E0074A
082A852710A62A147C966F2B85B51B0BE85F11D2057C66FDD61F6C5755367980
9F4DE680601D4DA41B46F8D2148450000413C27AA39B586B74B977B25F0FD3C0
4BA1EBFAFDBEC531EA1210365091671CE3C86A6D4BC591C37DCC02570042575A
9D24252D6E01A8603753934D7EA5CAC1BE4E5AD2BA047DE8F3983B23A8A1511F
B08D373B69E5076CE4300137B8805EBCC0AAB89BBB312A77835795E3C069322D
42C893A30AD739E2BDD299679B158F7493764F2321E3965141B5ED1C6F4765ED
F46D391A646B30C90002B1C461AEE79E5F094CACCA656CEA3DB921CC5205F328
A2C69F817061D6C60B121EEE844CA5008F23DF06640C9A8159113907192A3AB1
7B50C6EEB6A9F745D613E74F07F6D62B54DAA7B52B1EF790C003728DF03C5D4F
675874115DFE4CE402E7A64CD1D458770671160D65DA8F86D349C7DC09C579A1
356627DAD81B01EDE6F7BFA62B3C56FB36D2161706EC17BD3CBB4FD6F4243065
A974BA402B07BD52AFC1E52D8FC755C6C84C5C3E4AAAF93EDD9D3C8D22201063
F91E6BED15CA0B0FD2C4D523C03B8C76A39DF9A80D8AE6F7D6249B1581E985F0
5A3F453F743ADFB56B6DC74435F15E1B3AA952A03ED62D95FA34E97F059540CC
B3D192F764A1C3F19C4FA2DB6D8F0C3D5B135C7BCEE7DDDB45F2683704C65664
F120646F9C2D8ABCC01AEBBA56CD26AE17F709908ED25B7F59C5FE504E4B9001
7A90BCBBE44E2EB9359345DD16D6CDB18CD0EFD42EE33B1227D2900CBD817160
5B92C27AD31C46D92931FFAAB05DF97A0824A8036DE23D611C407BFFCBD3CF0D
087CA6AF5B0FB38FAB62D0D8AA630073A4AF5914A8BF825721CC94AA21255072
4F5A0B69A02C4B8500F92F15EAEA506B88E86CB1C1065AC4B1A48ED20D1A5410
55CB9F641862F919C73B4E7C0731318718425D64FADCB81861774ABCF56E7493
72C58F11A72BA871CE03C2592A00DBB45C4A7FB183D43811BDE6BCC552304D93
FEBA1D6E3A5204D2AAFCEB3CFF896C5309154F2C7C9101F83C33EF1EE7B87995
DB9FF0912E397CFC60FB495B06E3226C4AE9CBAD83B6E5E17CDF18D18C4CAE23
CFA5796A61464F061D2B75D72C31D9472E2B3DA59EAD2ADB7A2F0E9C13106B90
8FAAACE3B7406D15B3444F4A3AB34CA364A4B1824B9F58948F64C479C768053D
08DFA324B0B64A91FBCF89AC5AD24117613213D446650D4F298CA1C0658EE458
913915F8EC348E272F54F0260A2D97C2E7048A78DE9671A84288E1FF6D562BE2
05DC1C1BE92C56FC76166D412A3746044A5FCEE0ED4B274500C9E5AA2AD19EAA
D29B73EF21148E669EBADCD34DCF3EE44C800900A4866AFE317ABF3D873AD1F5
A48CC9A52DCF980B202C698AC753EE7ACC1210C7CFA09B83C3D7CDCF457EFD99
53C4217DED62FAD290A9F5E8C1D298FA56367D92EC7D396FBD28A49419C6B8A2
ED6667C1826621A012FB6AB8A4C50D6DEFE795D1B5E95009073CAB4913C070A4
B1F7ACC20FB39F039A3893087534B5BE3FEA44A1A466F6BEFDEF75C8416A4478
EB4601C986A576F00F5DDDCADD4F649BE23B9519CD10B50B327E1AF8AC2E7767
A50CF86E54151249B2EACDDF820B86D0115DC6889CF71C6FD75288F81C7AA3A9
6AE70FB3A41855257F35A778E2EC7B568A3593AB11872F73B65F3D0BC0BE9B1A
5C440BE3F7EBA7DDA3A5006B69363DB8470088B5D103C9C1399F6A8F5728B278
8DD00B1CB98C82813549FBA840C4933534C7D723221BA87E19A06EE3660B3AB4
2A979DFA4EF0BE082C45D5EC6617FCF5D621B46B884B2BD84017A886167D048E
957CE95335C6F2C70EC325FE29B55702C283463404FD718A2F97E509FF73E814
9D29CED74D70955640727B7E687724518765A3A4E3C2B4B68690415C3497A168
7E8B12355BC290AB54733015C85FAE8DA3972C45C126F51383DB1A346F04F1D4
D6937477A89E728BD39E40DDAFC4BD08240FFF9CDAA722CE58A71A3B1C7A20BF
A7F1F240AD1774B7F546F770AA04DB018118914A2212FCC53BE21923EE1DA50D
B2281BEB21FEE354612005440761164012B5E2929D9FC6C4B6C20E6B70F10F46
2B0D4077D2B5700CA183C9BF1EE570AC9F03693983A4ECAB4520E8318F253211
2DA5DE021007991299A95C12C6DAFCC0DDC53529368BBE3C7B3943CD208D76BF
7D5EE59A5B297B5C48A57D3FA4897D08AB9FC0683E14B5625397AB3F51DC9BB3
EAE8E50B30CEDFF69BEA89CD2D82B013C3FBFC455C30C4A51AD8EC8B4581C203
4DC67168EBD3B83F56F8E91D4C12752257CD4369DA100E5D0EA7AEDC94A4B1DE
6C57AE27B22EA3754232A1B957A4ADC36F3C21199DBD59D692983B5691C18C25
D978E9D3A6F2B8C0F92E7BFF2EA2E9CAAE243F52B7BB6017E6F9B480C042A0FF
351EF8A1BEB984C9B6137F14E5B5BE6E3A90F08E4E8360BBF54E08DD33A5CDE4
463D228877B762E586D60330936F33D6209285AC76A9113050CC347F3C98B751
D296986993AFDB2DA45F13910A922BE9F928112291AA7F922390B8879C98D156
22A9C9FBE1056483F877AE2DA5CAC93400B96BAB2F794E4BE30F1DD4CC6899F3
1270A84526E9A291AF2E8545F6BD47CD62DA45C57E939A6C38BE442BCAF59083
F74ECF72FB38FEC77A02FAF0CB9489E95B78E150167F25CE995EBEEDE1E786A4
CF0D7E548DA2E067B398AF12F65491C48978B9AA6040F901BAD5612EC1A65558
01894AEC2D1564431DDD7A40A529939C473BF4389A8CC93B89A84D615D89B5E1
FA10A85D28ED95631A43A6BA235FA60A6351D55817D9613E03E13449B4D50282
E3CA7C143636DC85F1CB552DBA1E0DBD86F680DAF6A981EE61F1991A92851B04
2E9777A66123D2F025D78065D16EB33BCFCF85DE8E9829B5EB3DC3F97A77F151
3779068DF47518763A30A5E532989DB933A48B81895B55B4D65E9F80515F0419
6C7938783F1CC44FA66E0356ED197FE445F59A302B787FF2289369E3967BD33F
78A2D000C7B3A6F2A456DE31AF23D81FA30AA7A8E99905D61DF6BE7475E77032
B41E86D83B93FFB4ABF5FBC84640EDA4FE4EAC0DD678FD90A04B3155677DC898
A914D241C28A57CCA43E209727C629BD14B3FE27EB83BC7A4488B3B0F8286B5F
E46DFC4B5519AAE8D22A5CF51A2D76F1734B12E39B598359D924B378B156CDE8
D743A73F06B6D444A204A1C386B05E6244695CA5A59E3E0CED00CB715C2F9F3F
D6BD18A79960929934242FED547B9708798798424644783D5AB10C2FF10632C5
BD2BF9C1D6A80E962A944F7E050937F596738BCABBFF570BB088529CAB146A7B
92C04E275FA52935158325897EB7A7D6D50CDB27D7973707B6756ECC8E49E7C9
ACA46E911491D5F183AFF9337CBA71F9CEFE1D9D3D89E957F47024AB9A2E1CE7
77417E75F45FA15A9D6C9307FB6B6BBCDDE96D6CE7C318997A9E5BB85E904A32
3AB4490388F508A6531AECF43AC9415F52A1201DACDF0EEB36B6C3C362A1345B
9104479000C3B24FD08913A318354312DCEAFBCFAFE266AFE1EF533CD40F4BBB
C6614E1E0D9AB569900938045F66BF98E56E38EAC214BF88C7E6439AC4F94E9A
47E91B0BD10B840AD3E7EFE33DC1209AA2B4ED84D1027B614992F8A0A500D682
231CACD3B4D7F9A77C4235C349F7D4FCD589EA18F2DF9A1587A1126DABD96E1F
F520199DF122755DB04AE0427731B718ABC761EA849C1D755514E46705D4C165
02301025B6448154ECBEB185356807D5E011B2645C961861D87D6361C0D7EBF6
D019EA7D40BDECC22EC2E193B906DAEB91BF1356CBCC126D1C29BE6E838CC220
1D862EC07849AE1677C1B1610653006AC6B5140CD9A13063162D0E21A0E9029C
AEEC8AE9C7173EE72C2FF5AEE5A9DE8710CD6A7E215F5CA0B3ED76D4814B8E77
45B7817985B33EF6019B4FE2FB638769EC44859C66F6C43209952F0558740846
833DF8E02C080FC0BD1DFD124736191A177E7CE7FF7E3F39BF752D20FA641F10
DF1BC312B8B928869020E2F38B3EC21F274C59BBA02497C73DE57C447BEC84B9
4F076F125FE5B07395EBDCE2BF9A0F2CB706AD5DE661E82AC9CC0EAEF3BFFD97
3904F623EE104AEFEB2088E13834B8DE942EFDBBA65D88C9D0D380AFCB3E63D7
C3258BFBD219809E2334D2606835E035F32020ACB6951B09A73798A409A2B0C9
E95D3C4828B10E44AD36D2395A64B393383D9086F2D4C83A1398FAF2C7E2E513
184203CA74913853744E6128FCBA2463CB297C28386851838EBF2B530B317678
22DB00F4812769E3243E3676042ED4A62958E87ABDAB842A2CF4ED5B8FC92427
76B4BF6815184DFD572BF3D2474E2F87BFA01BCD29E83812A44ADA2B29E8F897
DACB49C3D4F079A1F1FE3643905DDC5151893D7717B3F42F132B6B8691E69FFF
2E16CB5AAF6A2EBADB7F10928DE2E3ABFA8B9615454FA575A991726A32F0CE40
E1F0E0653F2757128C48A67CDC364EA75CEA7EC8433FFF6B5256862C12286E9E
04831C9567F8F30FEF27DD1C70C3C3171A0D9D111883CE1629E91A2F5F8BFCC6
686BE57A2F0065739E9F20950A725FD38B722A7E2D39248FE64B85CDD7129A3D
DFBA37F144857549F8F69CA4DABC6FF93246F9EE513E162B8710C725BBAFC137
DD23445ECCC046D7CFC07C23B019AAF2BAF15D968B656778A505AB43B3FE8BD6
C398734CCBF1AADC077A902B262DFD39454078E0190A29503D13F52A8292DD09
1FA4788F03E60F7D40AFC20FD59642F10858A05CD0264DE3D8FFB8843F0F08C3
8277054A617AD18E99DDD59780DE2DF55B73A0B406338AE41E07633507A58359
C4E3D8C12846399CE5F1A5196317A788669C207D30770301AB36B5E2788F7F99
145E20FCBE6140E9A40434D16816B5B68DA21896EE2C3D7770F7310EFF61C2A3
C3E8EFCB5D5A590C451F661403B17CF2AC83754D0C9ED063EDD5D96CE5669215
8FD99121307599B660D91548DB44B7DEE668504247A6B8449048113236BCA8A7
8801DF9ECA4FBB7B44A5657792D3A81379D3700E74A010738482EE4D8246217B
E131619D234A7F2E0043A17B2AD7A33AA2FB6E3C4D87A13BD3C2DE9C3EA17FA2
3B6398D736482B1028714FBA36F2424B8DAAB085F3FF745D03EE31C156FA1CC2
2E59F8529965585C538C1501E0F9A316444FB41DF17B81DD28E687AA6454228C
7C53431E8302598FD70E27E1D72C47BED873374811E90772ADDDD431FB10DAD3
7C72943F09AA17F98673B33B4BDBB5E7FE5D444E4A18C4DCA9F1DF985CE77880
5A9C1B90FA525A3A3CAAC363457E9F2DC3B231F3424175471C690DC1DC64D19D
18222BEC0C488EF1C56F7132B80A396B4FA4421495EBF68776A13A22B23446A7
D1B600F90F49A55F64F1AFF5276E4FCE8F02ECB779DA641BDF473DFDAD580E7F
BC7951F55261E8D7851F7C2D146CD3D3BE061CF4E638E1C394A1DD507DCF5472
5A92DA9A974720D6CAE44007720CA531F8C23D15780F0DE566AD888E73D89213
D6C9616C5EFFC88D09A20D6D074B4352EB9D826CCC5687F1D5C9C7345B8E6923
96B021B8A40E244555D3AA4C5BBE1D3691DA89D7497CFC8EEE5FF02B16C56D13
65B869D604E2E775502BAA1DE92F898B47630ECDB8B820B68DA4B55E7BD65072
414A296CAABCADC189BAEF1C0BB5F7D0DF373635C30AB5A0781E8D530C5D383B
47AAEA600233FE64F1D2C65FB7F0062DDEDC7ADB9979E6A996C5AC89D0471126
10931BF13C4CF5E9FFCF02BBACACFE891D7508E17CE02DD3DE77EB2BA7C462F0
823D87F911A19883BBEFF4C971FAD69194B7DAC8E9DADE558A371E5D9FA01709
58EFED6B4C8B4E6B7079E4CE59117856C5869A953D84D3A2438B1364FE03E090
BAEB882DB6CA299B0407B964FA4A017FE7092AA92C52BA512343A391EA10A35F
C64D26C281FABD450545952E1EB99B67A39572055A4FCEA1FF5C31BC931A49AE
7D038EC24BB72E51FAF5E0C89CADEC50DE666BC6877519322DA8CA7588F30342
F26327E6B67F8B38C071BFBF0FCAD3ACB8DD0D9C61ED5DD2A586622F95D80110
59F04555E5B57F2AD9BA1A65ECE07F28E8B1FF5326B22EC88C14BE8C69A7BAAC
1AEA216323E5CFE5DA05AC934C125FAE5A0DAEBD1471A72641E3DAB1B811CA53
06DDCEEB80100BC8A8B4F81ACE1F8CE814152CB5A4D5A722890AC2B76926BACE
996473E86882DF78A8E430B2940329E917728A91D41D834A0B8A6AB146DE080B
33DD7D54BA206BD577952573EABD08BB0028F76DAFD32E5645A0020A71E23503
F599EB37E59502A3D87D16BB530007B7A5A01883BBD7755AE618DBA3AF0EBDC0
013822545D40D40ACC23DF07BDBB0AFFAD46FFAA0082AEC302A2A540A30EDC3D
A64D8681E01F744C06E7BD019711CE1AA9C34D60F8CEE96793C3477131AE672C
0FA34AAD8BC6FF10B2D986506E07E0B93CE8AF15BB6F88C2E0F7525F52756279
AB8036BD871B0569E924AB1EF44496ECDA2456258128A8875F9C7379A65BA6E3
B1B1B4F7D839E31E682FB9AF51D0F5E16C8C8DDAE9373AFEAE392FFAB6438B77
9858DCFC4D6C917ACD3B5DA3E3BCB41C5F489925D45398709BB2020825272CE1
113EE58B9ABBE345E1E0B81326A0B5F6D8673F8D916A10D49E17E6A9EE6BA49D
EE9CE9341D60BDCFE7C5E23F2ACE74E2410C8D7AA08B8C87934B7E25A2932C00
9BCF429D4E5855AC07C8BE039BE1C43D88EFC374C5D1D4DD0897CC12C4D6832E
832670B3AC8810A742D19F2753E07C3FCD214BFD159E68EC7C70777F2623FB5A
5A493B76C0557970D7D61776B9B10A62CABBFF26AD4BD31FD8B7C73395096AD5
19595E5D9453EF513F9C8D081D9CDE9BA95864439DBB51215A3750B4BD6B8224
D95966A2A7DE8643A3A4BB25B6D36C4D13832C3596C141B9687C783B42A55339
3CDAA387B6E5BBD02F8A0EDC987AB79972AA7459833058891202CCB89B558C02
A10B0E4B543BBB0940791E72A75AE7F88F74FF4C4F22B0F130D97E38D8159CA9
82109A3D84B7ECB8704F7C553FB8BC64BC61565E48BCBB6F6A2CCC1F50673221
7F7610347DF4849B4712E02D06908673117D7CC67598DD3B7EEE5C9028C7A6E3
2BD23E40AC3B5CA11E251BC9BBA74A37B4C6E1140555258C09DF0384F3188005
E822A6801271634B6682938A4265737359B176A9AC91F38C4CC0BBE422059C78
96B48BCCA264B690491FF320917C8435649EDE509019E0D346DE9B241C3105D5
401B68D63395F453D3EFC344948A37859ECF58BFC6B5834D2AE39DDBCB0056F9
BE5115B8972A8AE8626234CE7505956BD6BF328F4AA09F2FD5B04A6B9273536D
D8DE5166569A60ADCF27797C39B19DCCA6C928DC8A27C778D57405D77B5779A3
6660CB92D8E0215225F7D0B46DACF80CCBBD1020245B7C728D7F581C54129719
1889A4199ABE2A0D261F86E5C1004378153AB6DAF5948D7CC2C0D4356B6286BC
E32439DFDD30F5BAB2DCAF3855E6BB025737CE3FFEB1B2124AA5BE3084C2BCF2
BC8C54212B75F5E741B66E49D36E51109007076B446C65A112181B42E721FF95
011DBA1ED7C3349C889A4F6A55C21878647AE8B3615A87D3619057E1447104B5
D5552CB886808BBC66B2CC86D7C040104A984F3B4E7B28A85FA0E04D83E61687
7535A40F14FA5E2661D7209212D57B271F009CBB11F4C5096057A940C68DA2A5
D5F2FFE3ADD8AC4B56D73FDF49A8F8C8E253971B74F5F97C9397B6273D921A68
4C24845A9988D993D26FDD816463B8DC021381FE041E8B39FE1756FD9ACD93EA
F3BD313EFE4334BAC1D5C0BAC7CD96B54CDAC088761FC4A712693AD9E27CB800
42A35B024508831EF37789426A50F7729887A6136623FC72C79EFF02AF92C16E
EA04C8BDED4E36F7168A6663943677F201B42C6FEABA4451E656F125A76871B8
7E37395283DA33EFBC32EC3CF594F2855934501511D0407F0927D6AD83EFEE8A
CC2218706BBC1EF73DE12A30012DB5AB7585A1111DF2F806A1454C0E027F7F8A
1A20C11F63D5D819E0880D0E0D5FA865CAA0A6AD24705F484CBBE6112CFC7985
87925A0B7A7DF5D0A6040B86EB87AC0D70A5B59A109A3BF7EC528E585CB73240
3F77C45DA7A4734810421F50C25C72FF0F8414F5335789CB749E4D20D2512924
278C9D4E3ABF5F266A56BECE755E5318C0B37F7F058CE78573914BCFD5D46B14
7AE4E632C737C9F399F3415914DD3C57C05C697CA13DEF0696402444382E4225
7875079560216373E8D049C53D40CDC962D910F62A1D31AD6BE38675D9931CC6
39034FCCB16F47BC2646F9AB7C9A0EC6A6F8C5CF7C5CE4F48907B3734A9466E1
538A7CCA5A25962D3718DAD9413D4A83FC1D771ADA62BBA18B61E5C316AC5A5F
D60E465957FB57356D489B75BECAD72BE7D8B00E698C638C8559505052FEBAAA
C08FFC1401C6220BD743C1DE9BDD4394EC43301B1286E309E82064C9109D86ED
D1B9463464DD9802CDF87F2C69BDC36FD716070106836B1F094395A237FD708C
F182D7AA177F8035BF20112A89BFB7C91782794BABA06AE5EAE132A409D55495
ACD3CC44115FEE36AC1795E5FFB697D5FFDE200CAE0D9F05AA17C290CEE850D4
C49C9D454C5B0478E34594C670D68D07AFC5F43DA79BE491AEA1E95801986D18
66D7C18D3724BB1E816138866C7365CEE09A417E22DE299410FA849038A35C85
87B9356817538219E834D42B9218D7657AA88D92C97AD2D370D25FD9CCB1C72C
BD2F650C452E87106020E88767047C76F1AA0605BAED36D9755CF30FBC5CC157
1F9AA07A7E9EDCA83DD4B7FEB01CB041B7A9C739BDBF12B38F4FCCF83E6EE0EF
568AE45D0E5CD30970EAFCB9BF8E653B3FFA10D833C33DAE3B61179A2FF9CA33
A3D3ED97A9865A0B880209EE3D82F91C6D997E66EB074416EA07289BAB15D1D4
6CAB0157627ABE3745902BFC921CB97C1E35DE9795FF4337D61FD27D172469E5
2B6445484512C9B6FF86436FD26076C9D0058A908F7D275A114531EFC3B6A77C
30A8EF56CC1FD0B3B7E5E2DD443821710A0DA7E96DF964BEEBD1995FB598E670
73F54B7CCEEC759968A536375BA12004EAC6C24DFDDE97550E2B3775C0E402C9
D6DAD02645381D10557AAC3F440F2300F57BD0D4291588BAEAD04F4BD06BD4D0
C7164A0B9D4A5396790877C0EADB55A9445818E9769E428E2C3338BC5F822C4E
6768E82820D2986873FD097EC6181992BB59A77E00652A4C59546DFE0E79795B
A8869880BB501B8BC2FEFA8189A1047E2EC52F8C8B2CE692005EAC170C90906A
94CACE502220FCE0E58F9D14BDF4AEAB72CCC37ECAC091CDDC874BBEA9708A54
6442221AB2D6C440AAD1B5FD4F44779F4682693069833523346BBA620A3DE657
58498C0B66BF4926960C8C2BF67AE68A7B0B36FC77A6266A48276E362EBBD60D
718EDDE9E133AC261D387F20EE7F7311FFD010CCAF8815DADF52A40858E8A759
F48750E77888D5BF9D1CE555AFCFC153B96845FC6FCCA6A79F8878DD360DC681
FD4FAF9C24827B76A6F745EBC4198222FEF5E2FAD0400A2CE0F80823249C275B
DEBBC1F5651EC22405222D130E7B10A4C69752C34D33F2352C64C00007BD95D4
56C04457E7D43076DCBDF9C83DA99AC2D3260BCDB64B4A2140E1F6112EFD761A
5E9B47AECD5345228C55D25B59BCE02DE12E2F51BA525E34645178DE23358C7C
FE07FBFF50A8A492344E3B091FE7086D147C12A60068CA7E03E7BEA8D687021F
7F675A5F4A1FCE7686A2FFFEA5BF1F3A78F0DA709FE5A29F94677644E745C9FD
DAC374E987F4C8C352B8ADD2881BE203292D29973E0FC018F4DB4085764703BD
360AC5FAD44A36C4790E50232EB84D28035390339EC6DF52096CCEAC0C333896
F88B8A2D0628D094B60CB0DB92CA9EFF41588955AC5C3D0DEB8BF2A5F8A59445
611CF82554E77ABC4CBDB16A858878EBCA2E31880CDC724BAE35B9EE3A1DA1EB
CC70047E62373CD1EDDF406BC83F0B0B7BF2F5404FA47561C0302825CA28D9F1
37A8B3BCD0CCDCAB3AE24A349250247EF83A14F13129A11FA5A4FE2C652B5188
865D546D42C5047ABFEF1C4E514CD924F2BF310F072AE603C73BACD7EAC35F07
B57303BED1F118E3597692358036CBDC9F5B6F66244FE0DCE2F1413A6E8B8330
76476E423FC274D5D49163C62C3C3308B2A87C0941B773A49659E3FFCE449D01
389435EAE61C3899298057AB5847F6FFE2516706A115A1390E2B280EAAFCD6C5
FA883091F195A502493E16656A061D549B7AB3ADC7238154CECF1D2535501E4A
9BCF7F6E051C610C67151E13E0644A991E3E9A8D867BD8E21DD573C46488CB98
E3BD8DCB292A2ECD930D160F47586C00DA0687D67B6627376D26269BCB9F28A7
6316455BCA596788B53CFF52EF582A474594D2853980D5CA023212948448DE80
820E75B1606BA61F5BCA39A9CBD6ED302D24623B21E508C91F4B0B04610F46C1
2CED7BB7A2CEE5882FCDDCA0861BF7133E1DAB9E0C161F77BC41AD49C72DE035
F1A8A19032A0CABCFA01C40004680EE444D3ADBAA889C0146437186EF6319AC5
4470513001B698429E3C3F35F2C96B00A279CA48EBD697850E853E454F27A633
990F9AB745E65F15B43371E0625C01608DA4DB303BE297A5E0914966A2AA0D8B
BEEB447EF245709F01BB7327787C850F8E3536A3E8062CA7DB3DE85BF3B8D6EE
DD714E2FF7562689584E2850BEB31A4B99E5FAC44A5C8507B9C9299A17BB5A6B
ADE3C6295605A3E9028AAF24D1E524DF7C5D9953D8929CC7B2D0A8E1C67E0095
FB0EB9D69200E9503B1FE7CA750AA961F610DE8E805E4EF5FB20E8F5A381D506
4F049EBA0E5BB9E7E21C8089E9D984420DC6E434A7AF043D27C476902A3CFA14
04EFD9C45E459D9D0B60DBA2B4089E1B7A507E7074A663076D1CC4DE0D322CC1
7ACD76EA7684A52718A04BEB38303C9479BDE4CEF6868E3E3C53627AA24B89B7
9A2573EEBB407CF895290D9594CE3918ACBC7ECF299B8DC56A9D055278858FD2
531103329A2F09F9AC1C48200C990ED99453C0227D9DDE1C58C8ECB10A7C49B5
8BC7393F608334AA63C2D5DC2434001F19C978C66F8B9F044375C8048C764DE5
45E75E678A93FD576F9F84D6D65F1E51125630AC41E37D4F57AD20C087178CBB
A50615A4B26BD9AC45221CFA731866F6AD25A35DFB24013F7F6B1B98ED4F910A
48A8B10842526919A849D55128EE63DFF58D3EB2D02544753FD5BF5DD71A2A6C
142DD5A9D9FB7BBF410A66447AE4B8005A1725D4544C73C7B99C5ACB61162F7A
1CFB5CB9CD6DE6C2ADDBFC234C1E315CA8BABAD1EFF4134B01C1F2044358527E
D04C90A8EA842DCFA1CB26375410E4B5E6C228CAD1551AF06548BA75A0A50B02
85623DF14C61A218A1CB70ED509BCF9E142F45718DF3AF4FE84EFDDCE23A53A7
C03EBF8DCD0E0C1387B4D19D8D90220867B83AF778D4F3F2562BCBCAD00E7575
85F809BA7DF0FF1DC4B6A9FBE044D0B6F95BF8480E8B0B99383C4C572DB6CE2F
EC499F566139F5401D7333EA0FE161A3EFE7DA043B7B32081A878DB48334B6C0
8F6D4E19F726A0B5154358E48D2B750279354930CB84CB24BFC3A7C00CF81FB2
4A4D69B3E63F120317BD2D16DA74A9FFF25B48849945DF0F429095DAAE069389
B81AA8B0926035AE5C11629D94E925E1681B05610B137CBBB8E037A59B183F97
06EDAC8939A09BAEE1978B347105A2B6C8BDC11179835425C28AE65A75160FBD
4FC08AAEE0B44EE2C65C59A423C52AEDB74FC81A1980364A9E46C6B854614BEC
578923BA7E7F2CAD8BCE745943E49EF1031CAF513447C770CB68A787E391476C
1C5D4D0291E04049BFAAC7A2119468C89637470BB69CE88F1980F49A11AD291B
20729F47A6BF224B5938AA49D6E672EA5B5974BDF19B04EEF9F7A1C894C6840C
587D6CCCD955E15167410A3605B89A91F6F048C43AD0297EB17075A21472F238
F5C65571CE9A46701225CDEFBED7E8C41BC5E689B9D72D193A6C66D9217FAF10
B8EE5F5AFAC0E7646E5E670764D02AC046849E660E1B623464FE82EE64CC0D2A
E219FACC9109A30D1604956A6B7B1EC50D34E1797F925CF32C1C603B8339263B
36A57D32D13631D2994211A9F215CF0BCA39909F86C781511525297F5CAB246D
02D1E1017F32C84E8A7A6A95FBF9653BCF98DE839FA1A8A37F44C355217F1E2F
71C3E8141CF655FB2949E7DB583352FDF7BBCC236707BA546A0949E01482E044
42617A11625B8F653893EDD2A88F5939D26B430ACDBCC08AFE903FCD9A614B18
051A95C12D416D4A67F930D5151F1C32A008A6564FDA38B3F6687D4CF25BE36E
46CAB9CF1F2AB8C089B7F581C2E6CA4F2A4A3C3F30FBAF6D502AB13BBAA559C2
D93375F4477853AA5BF59349D0B9207355DFB16B8054F19FABA181B7E1B2C72F
69C6AD1F1CAAC496350029763E6E9348A478DDA8DC8EF18A21D6DCB4E2498C71
B424AFFFA2BE8CC7F67EECF8FD97ED6C3450980EE0234BEA9742A27D948FE637
2DF5CEE06EDE2825F01100A5D0F71BD39F1545EFEB709BB539EE16F06360D4A3
A649EE2B9311289FC337E763F7A115561A9722CCAD3712229FB48069CF883CAD
11EF81AC1396EAF0258A7F25CAD370DE3B93ABCE2655C02CCCB9A6C1336D65D3
8C05A45A4C3E9969869BB7599D2183989990D2E55E6C5AFC59CB7E4816D1F08F
558238A864567E7D3C51DE98412696E1F8812EBE69C4AABF80A55E10A9179584
35B02DCAB9B4A44C8C6C22DEF700ACAE6AAE36B7065A6473771422FDCFCA6F96
ADB40DF486C817DAA5F5260B05735D08B93E4FCC3BB2E46DBB736E9A7DB58D68
DA83F397B5A04CC31961934376478294CC3681B7F4132F81B6CAFD4DBCE6F394
4EB0C2A35EDDAC0F3788DD1CCA638862A26451551223E2DBB7A6E936FFFCC0F3
8D8AB55DE6ADD940B62B64BF3BD4BBDD0FACF5202BA74DC6AACD34F7BB29298F
73022B980E905C4F8CF2250B39945CA3463174175B4CCFA41245720BC9394013
FD31F5FC9263F82E400F072FC6B1F62FD4F15084B345289968704CA3E3D0FB1C
6F3363A7E684FE1FA0A1D6E8108DAC79F75A8758885AB8BF87571F893EE2837C
6BE4C1A3D96ADD731F88743BAABAB9DAEE59D2BA28008AAA8EFF6A4B409FAABB
7D2189B804F0BAD163703F194EE06CAF0F787D5B6813FC92C30EF247EDCC99FD
5CBD23DBA287B673FF961E72E1B28F8EA8C404E6185453B8F4869439E562AF4B
3EFAEB3BA067CBBE7B16848803F4968BAF8B3C461DA86C2F3CF48E29152C00FC
1AE14214371C285643797475AB0E1A3886FF02D99CECF72254B0C00C4598C216
9AF1C919B8A7DF789F25E750C4BB03085563D560E1CD36E6E51561D6FCE977CE
D513D2910102974A59C0DA4D6D6EAF229EEBCD669B1A4CACE436748994A36F19
A4B97F2672AD36E90DDC393ADD34779C9B1B9E7F7B585F144C8401F92CC3BAC7
F5642DD9D87812846BBD0FB21C47558B576183B23915630070CA26AE35203AAD
59C2068A1F0E3BA865639BD9CF59E4E6DBFEFABF1E6E18DD5E3A01C3A9588A35
25F8044ACC8D5870D263BA5DC1880CF5557D4BF8B8057FA8FAD1922FCAA8ED03
93D7671BD77C45606C6245F368BF825935FFC3DC2ED73A52E7F937AF170C574E
2B7761AA55C333383E77BC190778C6AE8B74B7566E4E4ED8A78627C769D03F87
04AD4343AF47E63161DA08BF1EA286BDD51F558D4A1A930D5FD1C87D3B4E384C
83CEB81916B81DA1A0F851B93EC4BD3C22802BAB9A56FD93C2D66026498B19B9
CA8A0917048555D5B8224D0195F0F32191B1845A6D2CEBF9433F0009DA4E2B72
E40E6A392BC34DD57E650CDBF82A6F5D31609B2088F94E1D61E857F254007F4F
9A5983AB85BCF0AD4BDBDED759B54F300088BC243DC6D3DDD7D41B081A4591D5
38A909CB92CA0EC59D0823465A8656803183CB9ECD35ECBD3DF6DF9E35716708
A1CB8683966203959F55696C167418D55BE5BB930AE2E63358D258BE4131133D
322B1062C1EB5362C632DA306F4F173E4A16B76EEE16F2D575F95BFC974E4415
A06B9FD662DACCBBF8FE30887C3481BDBA3E53A056E2CD7909998AF85BF70DC6
639AA7F3DF5576EE014F3C3F9A0C4722E34A76CD0FD4C50404BACDABC2FDF33D
5DAD365B3AB74D97BE037104F1F3EF8FF1E77E69EB4B93C0342D1D3EDD5D652C
898C80201131824601187578CE11A705E81400925191D85E751A19518D6F7A6D
61751F33A974A7442B5810EDEF3AD8A9EA14EDCBE44B3C506374D60CC6D0098F
A83ED7DC226DD2F9E8B2108BCC2F789B3C94FE0D2BAB44BDD8C3A49ECF0C0527
F15BF760BF0882C0D14A88ABBD387FDFABD673BEE0E1BCA8309C98B233397D51
14DEC5344ED34C4E8C3306320462768E38137F0BC6B4D88E47EF740AF2AE850A
4D36BDC06BC95AE4BC4ABA288942A73A45FE579D5F01DA0F0819C70C6B83EE28
136C42C210E9839A2B25CD0B07819F8B12B85AF79F8C49B34BDA3279AA50AE17
64C163099C3EDD74CB3499B5736C76861A3A9A9967CCAFF48F5B3F250B2572C9
10B3A848A4D4C40E30283702A6E814571894477B9205DEB99891B874591C2300
D05345D376B5FD3438A15B17FC469589D28DF736B88CB2BC18EB8CF793A64322
174187F122E71D3AF64E4515496696843E6E4E85248A07919C3AD5FADDC20763
F9634F78382DD7C8D0F60432EED182D1709B7D09521FAF11872C572A5A9B6D31
4B66AEE773E658C79655E2BD94310B60B61E0ADAC41CB3B5490D86C462FCBC56
E92FB1917A4EF21F2887EAFE4655B1FBC4195B03A76DEEAB2739AD8096566836
33D44A98E8241BA056A77DAB4F9144B691F4652CE6F5DF34128BA4C585075F06
828A82F5FDACDC357C778F0DBBBA5070F4151E82308ACF20EA926BCDA39DA41F
8378DF9886264814BC1735B267E3717B95A32385A88A5F77F724DB01825B8340
87B8872CDE61FF637B194194F2434537B24AAECF3A5AFF6FA2DBA949B27D1BA1
B9946B621FC245F3089E6D109B55F6D7D609C40B459D5F8E5C7C2B7B07829E06
B3961E1D09F3918ABBED5C7F44A29D645F7203F88F03AAC905CBC0315B09A79E
A0C916A887C24C4B3140F50061AFCB56954E86FE76A4917608014A4DE7DFA10C
80B6B86A7DB862737E8AACFCCD497F4FE29C80C6D3B563C2C4FBF371D31C4945
23BF22F4BB99A9149ED191481271B5DE2653657A0EF7DD340FB32223C507CE9E
8EFE57C2A0FBAF2B75AF7BFE444AC1287946BA0FBCBFEE83119D336E9743361F
96232584F3A1C29972B46AAFAA138DD04DBF3F4FA32A2248B536F94F88FFB029
E0EB3545D25124517FBE46DD118013079F1704F4D3294CC887CAB69BE3AA306B
1A51384B7EC7E6D8ED8E3A75A690B4B9ECEAA23C769343630BEC839C6C76A0BC
1DCC31BDB9C7C7EBFEDDDDA0FA7EB7CD06A122E98356DD2EBB8D71B770D79B52
3AA932F44B932F164B798CC2652B9E18CD06A6ED620D85EADB7A82AEDC239520
758C819872896EB6FC27629A5E87CE7AC30B4DA68AFC64FDD551564E9A0A2028
AC49DFF252B9F77EEE806633541CC6DFFA057B50D4E9AA556233ED5977225182
AB74B3CD373C7E1931B839FE228075E666F1F8B7EAB497856B4ADEA7894309D7
B6813F5D26E93908B9632B178BE526DE5A23C50ADF3BE1AAD29FF36937415C57
3EE1C7CAC1D2F62EFFADC0B8A3B4FEFB84C8A1C7DAA9036A6509716A23FF41ED
69DE2A436E0659DE662323151ACF3AC9C17F29B43E7C4A4D82D35A5B301A5FC1
3CC75F2B0B21753222C1E35E746488892CF9ABFA38EADB5570276BE405AC6294
5B9D760F38898F72688C863F5BB66FE4BEA546A0A1EDF2A25F0EC771A3D3F181
E8D8EAF062EC5863B8CA75A4E3619BFEDC311FC91CA878724010C11D6A26BD8D
4F1E86EFEEE73FBDC3D2ACEF3DC2C5C2766F029EB66323D7BB346F3CDFEB2564
CCF9C362B5A9D8E620A865176347C1AEAF6AF66F771B0F3E220B18AF2589824D
6019DA61C90E0CCB4AF41A33E8E160AFBB87CA7DDC6A170E77B8BE0EE0EDBABB
BDCE4405304DD2DFE27BAFF685D9773EA45B371C91E3E374EE49660B94000AC6
53C95895D9EE4C190DF05EC3DAE09654D79694B4C5BF8C4F659E2F1CD6E1C3A7
4AFD8A033B9921BF84D9FB13B056E2CD8221A9ED70557F7EBDD5B8D242800F71
D9708F476CC8FBA6CBF698D1C5B772164E0ADC8ECF8E71CDFCD9F2EF398A58CD
75E931A4C3147F943AA42207446AE8898A13B5782EF1D9BB249F7F33DBA6B9FC
530B62922E4538AE0B039F675783D3D43EB3598BA81401D27354B9F54E88CC2A
6F6B4FE90C1CF5F5356609CA85CCECF9D9D0936D8F3488CD92C1786DC7F6AEB6
D0874CD3C7A9314D5B4247F1271354E2D7082D791BF71799AA49DA7F3CA898CC
BA37AF3ACE53CA1DF546B673592FD8C59AFD6234ED4DC08227546D6DBFC409C4
1FD277029754A44EA04F459800C5E7AB9B373532D57C6F1253B6B1E34776B001
3B22CF13A5C3C59C9335895EFE737345FF878C70B30882C5CA2AA5F14741A675
A23CBDBB7735D14B660B024B8E15C778647329F79E1C4073A4E23C55FCE95C6A
7D5E461DB89BBE4F552FF301CC1FBA393038FA40917273C6C1B55CDE94D0C983
5E27EAF6A0EC1A4D9B7C1B653F117880BE692F1D5504E9C7DFCB146D9EB614D2
50E806B443A1A3B21D5FEB40B084DBF82DFE52F38CFA0F71255A84E30FB695AC
F6C77E8EE4EF2F221616273C48BF21E3C26DFB9B0081E3C5AD6A573E6084BF6F
63B215F579FD063993E7CAB3BBDED7C7175DB1B1E35D7860670CF10D3822DE30
CF85108750EC69F1A85E46C0D6569F4285623DA5639BF7B622E8F6E19FD97623
D8F55028801B3D91512990EA31AE6EC00163348DB6C5281AC55B6727F86F2971
2385CF19A6FC8017BAF1EA364D05B34DC40A084154B91A38806A4321740C7251
8D6008AF1F7566FB344B98F1DC30E61C3A7D84AAAFC0882E4AE2F6BE69C443EB
0AB6D8C1587D05A6E7D39CB4FE60597497AC709C48A82953B3F81A4B70EA3124
DDEF93CE77E4A8DC4D9155D77F5212B91A9FB5677D2CB28C71E7DE45F1F834A7
92E36D454580ADEE2FBE4040B057E5206CE54B3F6273070598323F7F1E7CE7C6
73C01C2E22CFA5D663B268236A4C286874A0199BF642C37B176F004724F711FF
1AAED6EAB0DA02AD47445BDFBF1BB5FC4BF32912809D767F3596CC400CEA0EEF
0C44BEEAF192D80F094824B550CB86A9FADDE344FA90E71AE7FFF758538A9571
ECF0AEF822AE8B8DD75B23F1BF1D96EC7EF8F6FF94E83AEDB22A2FD7E51C7024
1B7A8EBB99FA90C4247527C014D864FC5F42E22AD1A49C446DB418BA0C2F8ECD
9701AE86445B2D1BAB4EFF94D0C49D599965269F43839E259254BFDB9F28FFAD
BE8B8FEA85DFCF604A8D04108BA3226D02CC02A0724C456ABAB2ECE31D93B5DA
746FCF38C20475C46D2C16CA69BB28617E184ED3671A94F221089C1DE6A4DC6D
320B2C80BD115D66C6F40A7BB0BE2C9A63BE9C91399928EFCAAAFA6979C0DB48
3DBE10D95A8EA666394CC43DA2248D116511C27DC1BD764D657F8514363F66A7
13CDEDB22F4F03FF3E653281D43CC58C83EA8A25305EB9BA3C86B76F9A423C3E
ED8A91078BB88236B71AC5BFC086886F9EB74C33B870E86178110779DFEDC8AA
4FA89E6890C1E68419F4D370E55BCA6A2E1C58E4E5721D7DF5AB4B88C4547629
D462F72CA0739E29ECE6FFA4CEAE20DBF7C1727CF61B052E080CDB519933E9E5
8665A79C26BC1306667A4EF943571C3646E9961817F3DFC91D65B68925098422
ACCF5D9498AEE0254058C01FC2C8106650609055C18296A7B0902952CCACC168
0BB6568D75C26EC45667C4C77C9F74B6189F6DED47615C0965692A2F070D37FA
1572266F0F7E585547DFBFA16A6CDC8A3D00C7D24AFCA380D7D4F401B760C752
C84C2CA344E4B07292FF5BE0869EB44629C45B8F8CCE91C8DAC024BB38147455
DA7798B6FACC514EEC556BE875339F34DFECB4262EB126E2B5D1782565DBA76F
5B8D0DEDEC6E0EA4DC1FFEE8B0804B61B3A42177F3A50911F7B660F95957AC2E
D9E430814D1F8BBC820BFEFC3AD566C678010C16EBCD664CCC8036863C262391
C826252A994077EF5CCF347106C95CC74FB2F596CA1F9B1FB537E30819E47B26
8E54D89ABDEE0EC9BD1704D77D8C412ECBB768EAE2CB55964B0C869EE2C2B91F
C22B42C238F8D986226B2E3712C6CDC9A1CFB789A9398C130AF68B1A0345DDF0
746314159F266DC8E7F75D852CE8D4B565EFA8F9EA22FEA87CF57CB608332BD7
61C0973603FB9FD12CF601DCC86CC3F4E8E764825D7EAA46842803A74CCACB74
962EC01A5D4486D2F78DA4FBC118FEF94C0115A948EB08BC20FE51ADC4B85178
69C7C540E88B791075D67B24EEC9195FAFDD7BBC6C20941EF5D6B3D7431B4C8D
3479D5544B30CB9872640E99AA5E4AD6415127BCFD34A244077B7FCE07C69B54
15C9F425E069AEDE3F313A9698343B0964861C3E4001405F5167CA746C0F99CC
83F07256BA35E0DA26DCFAAF43E7F77F20C26DC8A2968A161B65BFE0509870CC
D092AA5D23B7EC037EAEBCB57841C02745791BD39426228C45F0F7DA48BEB469
2D530435733CBAE3B612D1A59B61A64612E8802E00E3A8FDB340B3FA3DA2F3FB
05BD6E691FB2C293B5DD1E3EEB0B23CA24976CDC4359FAA7FDF80F8CDB853C2A
3E88496E74B9F37EB37626132CA4351B005DE3B17B4BC999B522ECA613858679
196D57DF14219016971A7B3E229E10AB08CD18267B7323BCFE5A6DD3707BA485
F2EECE863EDCD31FB25C6DB7973205209D11CA6BB041628677EF6A126E6ABB7B
F35B2B02EDE3E440208237C624C4074E4E142A530227135EF5B48596AB02EAEA
4536B4DEE380502B3C7B029077D003484AC208A8D91BC3E3E5FEA9ED3A93C455
ACBFC2113EE3AD8C59A5C7B5FB19E51EB7506A3BC2E24260FD055CD818B52A19
6E368908685B0EB4CE4DEDABD4285B5804C708F331BE6A423B7CEEFFCDD85928
3FB8ECFA2389202BC48EC1CE5C7251607C0AF577C12F354AB1FE170B59D4CBAA
E7C462B476A62C33C6EDA719D0649FD100BC34548A583A0FAA82EECB5E3399B2
4D5A348C76710D3F3BF3FA15AF9D006CE713AB508E219002C6387B735CCC72E4
9B284A20F891B0658BECB9055341AFED09420A2210CBDF3961DACFBAB76E6DF3
7267E71F4963A2E5903C49AA65A9DB16B282866960E54095D6CDA13839CCFF1F
0584D40A59676BA94625CDF9176E730876AC56A9FCBA967DFC9FE078B5FB7821
EEE5178D6E0D97543AF2D10D048663AD9369ED71F488FFBF279BA62017EC05F5
9EF4DF20F21161708C9F8BCC1CFD080AB47A0A7AD48897AFABE5BB898BD120A0
A1B9
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont 
%%BeginFont: CMR6
%!PS-AdobeFont-1.1: CMR6 1.0
%%CreationDate: 1991 Aug 20 16:39:02
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMR6) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /CMR6 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /.notdef put
readonly def
/FontBBox{-20 -250 1193 750}readonly def
/UniqueID 5000789 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
2BDBF16FBC7512FAA308A093FE5CF4E9D2405B169CD5365D6ECED5D768D66D6C
68618B8C482B341F8CA38E9BB9BAFCFAAD9C2F3FD033B62690986ED43D9C9361
3645B82392D5CAE11A7CB49D7E2E82DCD485CBA17D1AFFF95F4224CF7ECEE45C
BFB7C8C77C22A01C345078D28D3ECBF804CDC2FE5025FA0D05CCC5EFC0C4F87E
CBED13DDDF8F34E404F471C6DD2E43331D73E89BBC71E7BF889F6293793FEF5A
C9DD3792F032E37A364C70914843F7AA314413D022AE3238730B420A7E9D0CF5
D0E24F501451F9CDECE10AF7E14FF15C4F12F3FCA47DD9CD3C7AEA8D1551017D
23131C09ED104C052054520268A4FA3C6338BA6CF14C3DE3BAF2EA35296EE3D8
D6496277E11DFF6076FE64C8A8C3419FA774473D63223FFA41CBAE609C3D976B
93DFB4079ADC7C4EF07303F93808DDA9F651F61BCCF79555059A44CBAF84A711
6D98083CEF58230D54AD486C74C4A257FC703ACF918219D0A597A5F680B606E4
EF94ADF8BF91A5096A806DB64EC96636A98397D22A74932EB7346A9C4B5EE953
CB3C80AA634BFC28AA938C704BDA8DC4D13551CCFE2B2784BE8BF54502EBA9AF
D49B79237B9C56310550BC30E9108BB06EAC755D6AA4E688EFE2A0AAB17F20FE
00CD0BFF1B9CB6BDA0FA3A29A3117388B6686657A150CE6421FD5D420F4F7FB5
B0DAA1BA19D638676E9CF159AC7325EF17B9F74E082BEF75E10A31C7011C0FFA
99B797CE549B5C45238DD0FADD6B99D233AC69282DF0D91EA2DBD08CE0083904
A6D968D5AE3BD159D01BDFF42D16111BC0A517C66B43972080D9DD4F3B9AE7FB
11B035CE715C1218B2D779761D8D7E9DEBE277531BD58F313EBD27E33BEF9DC5
50C7821A8BBC3B9FDF899D7EAA0B94493B97AFEAC503EB5ED7A7AB601E46A2CC
FC2A276E7502892F26B8E36F84A233D523E4A2897C8B977EA7117F2B7C5EB721
62608D1220970AFD7064C96BBB5F92C834BBDB3825E1D4EF3BED89B60CEC3CEB
2B0DE3413945C208E171BDB24C6645D71667E225A4C5CB05457B5C60FBA83421
49DDB401D4C9A75D0161252BED455D5272A59C4E6655E46E51BC70133838AD20
FEA6221382C197F84F55F6FAF55F5C869106D9EBB510A50A6B297515FD61FF0B
FC3F773B663FD896E9B4CF270E862FD8D27CC8C6077A9EA6C0B2848A505B9B0F
86B38ED1113DC21A06C59EE0B6A1CA27271C732B923789923B20B4D9738D7AA3
AB785D79C24F0656DB616168E222F27F2D9A98167D456515D6D8DD32F7B63A40
A7F2520DB01B4C1121F17A90030CC4798C4A662806DEF1BC259980B496C5DDE4
8752122AB1D6C7E63D837309350179568B63A5B78655CF45FEA1515006AA7F75
17C8C8A097E0FE47D832C13AB99AC5551A719466D8ABA4096CB763C80DD69795
2E8F910864CC120F755FA20183BACD36675E20382947B7FB750381CC72D5CA08
1632E9E07BB99D95F70B7A1F378544663DA7A5BE734B0008507D4744960456F0
F15F1D22FC4AA0D161D55F5F7A988D470031FE63D3D7029209DEB19EA25E49DD
65072160BCFE68AD40CEF82AB603A59DE4750EDA0DF233AF7C60C6CD567A5995
A67C16E860BADDED7E2B78773AD889BC59E316A36E8C12089F567BCAABC0810F
ADFB1F4F76FF9DEFB9A0FD8C2D607A1DECD39E1A3A19D15F4FF2ADD67B0E41F8
A189A006AF83DCA80869B0607D41421A6B0D7A3CB4D07D754300F45AFBAC0FAC
22DF54F42AFA2F12600F3E6C1493B16377
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont 
%%BeginFont: CMR9
%!PS-AdobeFont-1.1: CMR9 1.0
%%CreationDate: 1991 Aug 20 16:39:59
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMR9) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /CMR9 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /.notdef put
readonly def
/FontBBox{-39 -250 1036 750}readonly def
/UniqueID 5000792 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
2BDBF16FBC7512FAA308A093FE5CF7158F1163BC1F3352E22A1452E73FECA8A4
87100FB1FFC4C8AF409B2067537220E605DA0852CA49839E1386AF9D7A1A455F
D1F017CE45884D76EF2CB9BC5821FD25365DDEA6E45F332B5F68A44AD8A530F0
92A36FADB679CF58BAFDD3E51DFDD314B91A605515D729EE20C42505FD4E0835
3C9D365B14C003BC6DD352F0228A8C161F172D2551CD1C67CD0B1B21DED53203
046FAFF9B1129167921DD82C5964F9DDDFE0D2686875BD075FC81831A941F20E
C5CD90040A092E559F6D1D3B0E9BB71733595AE0EA6093F986377A96060BF12A
A1B525CD9FA741FE051DD54A32BECD55A868DD63119A4370F8322CCBEC889BC2
A723CB4015FC4AA90AE873EA14DE13382CA9CF0D8DFB65F0ABEDFD9A64BB3F4D
731E2E1C9A1789228FF44116230A70C339C9819676022AB31B5C9C589AE9094B
09882051AD4637C1710D93E8DD117B4E7B478493B91EA6306FDB3FA6D738AAB1
49FBB21A00AC2A999C21445DE3177F21D8B6AAB33869C882613EA6B5EC56476B
5634181ECBF03BFEDB57F079EACE3B334F6F384BDF9D70AEBD592C8ECF21378B
54A8B5DBF7CB9282E16AA517E14843909339B5E7C55B038BF3BB493F3B884A1C
C25F9E8FB912CBE23199AD9D2C3E573727701BA301526C66C3617B9514D6F11F
11930B1D97C17816C85B1BFD9B973A191B33CC3B391815AC46268691C741B2D4
48A840F1128D9B2F9CF07D0709FE796B23A836417BF7B5B12D67F74453C82F5F
25F7B30701D6F6D4F4DC623C0C27D6A6FBECC7312A3CD10932FC7C10851C3C52
24B75DEA8A648B7F34F5711DB0E843C914E25663C510185BC37BDB7593C1C259
21D8DDAD33982C336BF272BAB2F48E68217403FE9F54877B243614A87E64784D
2796EE4179FBF96123D1BEE3EF89D682B427BA4F12A1318A57F18BE5DD903815
26141766BD20E249B5B76B2074C0B90ED76F5C357DD30F10726DBB4E038203D4
B0DA21359E1AD495025F27A07C696EFBA275FF060A673F225AA5DA2A7D5BC17E
C0FB1B93CAAC5FBCC13726ACEEEF7DF8C7DE9B0567860602E02E09742B80CE7E
71B77B7A0BDFA787FBE34B726F93776FF76F0E1CF0FA30A8D0685C61D14DFC74
A7893E677DBC9E8E407600B803BD7A5CC89F77787F7686DF45BC641FDACD9E02
134DDB2D677774120FC3F53948EDC13451F5D012BB875563CB5C68BCF9CC8C40
DB14FB750FF57BF2865A8CAD1B96E64C2332EC4719B9B1D57F429BC4631E3CF8
A57C74A58AE7576F4EA5A4E7B6D2BDF6EC97EEAC013B5D595789BDC673350E84
0B2BC7BF42EE7499A1C58F96C84BB5F1034B6F5B0EB56292D836A5C8B4CEC9F8
7D571EFFBB8B3BBD1D201BFA7F879243A79E337C0BD8242102FA8AD45BC7830C
6D3B3A31C85BD2D16F01F1B5C79F3223EBD7C94073DB00D59BFA1A90EB00C72A
A5548D9065E037EB15A7E6C30B2AE8C984B545B9E45338DC6B3EB2E64A18BD01
8CDD96D484902A149206C56AD1F74C8022545C12B290AB2642F0D112134195CA
D70EA9527233EB7A81CD6AA6927DBE90AF8D3F0543E53EDAAD73201EF3206DBB
565A129A87F72EC36D8A9145B55EC5329A912423431213483D4866A8FC91C9E5
1D70510609758B45982194A5250BBC42A01CE2DB86B6F990BF0C83FDBD429A24
DA106550AC125FFC8D6D7D9709DF927B1998E7D084B767082A14866406A79327
1CEF243018022D3A4F9B3E2A92FB39148E406B380AFD8E7239B9DFAA13970804
9CB5E1D09CCD9608D910DDB36C141A0BFCABF51F61707567920039224DE32794
EC6BB4FBC7F0C02A0CEC8BD79A0ACAD8FCC07A57B553988B71704EFFC925A758
27B4A86A750DE9D63D00EF4544055A0633652F634047D2D9BBFDF0F9D81E3DE5
EC67AD4F3DA08B0951CF3F229A312ECDBD28B874B14540A5BADE8E7F51AFFD21
9088267FF6B9A52ED594563D08C4C5FCF5912C55C8CE0156500EC0D86A15B5A2
D63F9319EF3AD54C34FF8D9B09FBFC1DEE3F7CF8BAE46139EB2DDB6D166F41D9
ABE12F382CCC4173D48A58B77FA878DB058E2CE180305CC1BADB19A12E3C9149
53B036B3E3C35FBB4E6517DE4795E282E6EA3DCEA0C8CD7FF18FB99C92F6CF2F
01050482CEDDF559B2B60CD77EE7D7DD5AEF4E5C0FF64BCABFBE91CD329DE5A6
BE57056BC024DF286FE0AF83DA17F9B98884F07488C67B28A8F07D058E2ECD49
8DEF1B54B8B33E70CDD8101BBA17241EA979F8013431046ECACAB4FD08264FD0
D98F4A5826C9B6064B26F1403CD3BCCF433460B572215EE8BE86BC5A0D2E948B
D2088E02B592256795698D7A937148299AC184D3EB771ED271F5960DA1C592B5
B7503106F68EB72308D8EC7BB6080FD58B7511A62FE7AF81AA2DB7B114A95644
F645B94B4AA48E035F61A08BA8001FDCD499BD526CC787205BABB6BB2561EB3A
AFE4131E0AAE800855146710F4B1E04DD29BC97BF0F5467AE03C3EA8469C5E24
19135933E0E591BEAF900953F87199F68B9A363C32EAC931B64740261F8F2EFE
F7F00660138186727D63F6C6BBFD5FE6246856FBE1351BB591F5B95D31187F67
568F4B98A76CD36ADF71B22F843747870D5F3BFABE4410179CCDDA06EFF60AEA
C9F01A48CFA1349C4E246726EF05BC9A85D0E97B33F351BF26C90179C8E5729E
90A06BE129070179342B1A0D6590662187E2C848E41E9813721355ADD5B76C9D
CDCC46451C10B29ADFB323B68CF22F8A53E6E7157EA2D17E45EE069B31A0F8ED
A4CB49E4692E030035C841656D978C5F38D96BABDE529ED9717F16221CE75D7D
A51B871241B62D72BB15F051D57625945AAF06F8EEA5DA4CD3C139B6BC04DF30
064C17F8226971FF66DAC6036545AFB77B9B7DCE284F2AB3BED275654DF127ED
6D1963D6C6753E11D89BC0A939F2B34E30E12A80F50C9A65B9C82C572331F04D
27F7A59495094C65D9DFB3A462DF1CD9745302D04C6687A42DFC929075F1B788
E4DD511156185A13874796FAC3B55B6E8D1B554E4340C820331AA32E73E37B5A
794B118E1AA06667CF05C248716E1EBC035D56A3709E6F2518DE97B6D35B4A21
40DD25C1C1D7593C1DD54F6BC1EAA08F3F80E6D87C9FEBF51A6306CDFEA6FA42
7779E17E24764EA09BD0F09F7AB0DFF4EBBDC526D637CD6C5338635EBFB6E14B
0232FDA7B540EEBEAC6B4E15912AB496F330B6A2435E008C95A12E46496013AD
6D86AB0A057AB9E9EB0AF0ABE41447F1FDBB42F5FAA754D0DD09B7175BC31678
D3BDC5A9E110642916DC0A8CBF6A6F5A5C57C600E71C699485092784E2C08AA1
C667A2E8DE93A04248CA46DB2F9063452DE4D6AB773AB2194E27ED602528C792
E3F2C4817D8F4D168DC6FB7E6986C9952CDDAA38AAA77781EB70B5878271C051
C111890350AE86150238EAECCED7D9BC26164CAB5331128D714568F777CCAA0B
6E65F5DB872584465AD5A1A88EC6ADAAFC9815A4131D3020E6B57F0003AC8B33
FDDCEDE1BA2BF54C0F1D48D21965A571FC5640C98D4392FAEDA06900610336C5
1DBE15FE89593EBB14C6DFBD13FC6987113C809DD44AF91432B71BC957DF07E2
C4FEB7DCC627801F132A9430AC319412B7290C62F3DF1E3694C8F32648A3A0AB
EA9C4329977AB8A72F282A755CD3DDBD59BAD90D3B01AC8C6A50E38C34C24ED2
3F12103806AE7294A8CA771270EE73485FED6BD908C0DD123857716D17864E2A
47B3ED9D818C494B9A56B35F7DD3221EF55C7E3D07BB833A2E8739D9D8EC76D1
363ACF5622A790BB06DB2F4D662AA55FA1CC91477242E3501C995E61F33A8A15
E0AE9E96EFF14DCFC149FE847D8225A967E0421DAB63FFE780AD327AB30C2463
4D4C3F958B95D0AEE1EA62AF7C56C83BCF53221C0A90FE48B64627C38D8C748D
9FA514763BAD2D59E3433BB49DB3114FA72F86778F5088DE72F1A25DBFFBA2C2
CE82CEA0095676A5B89EAB00B88623F26C614603A8A67F96ED19477F7D26F554
2D64F70F51CCE192A0152D7F5BD1B0DD15CA2C70539C91F398723ADC06AD1565
D309EECCA40A05B9B7DAEFF49FD817925F2F588C7A80C8AF8D751EDFF7EFD8F0
6FBC56FE8CF7A303046107485B12BCE9F981819ED5DC854222981E24B02713FF
085DF2F39368822FA44F18E8299F5AA6940E5DABC607F39AA72D79139030EF45
091861A79AD25AEC17862C963944AB6EC1F17DF19DD4E245028C5060CB586E88
EE72CD8498B537C64AD716A2A5340EBEBBEBD4FCBC71720EDEE2123A7C582EB4
A7E0D4EAAFFB792B3CF104F155E847E32C82F3E0655A68787E7A3BB3AEB2A7A0
2BE21C4D906E997707A386E7256ABAF2A185903089E954EDBF46B33DFEFEAC80
9CE0DD5CCE9B28ECD4D0E330F7DC71C1CD06209F0CC70AA88645E37126D9C60A
703237C08E9759CE2E557D68ECB4882C6D1EB558B528A0111B47AD4C695CC241
BA32A7089D1E81D0AFF09A4D3631285EB0A55C7CEF813502F51FD2DC070AA8C1
AF47D53D15B5E8010F513658E2389A48876A8549E8215B5B5FF265F146ADDD1D
B1D1F048A5060ABB9C80D52A131F6349A71AF1DFDE3286CAC1E388215ADCE2DB
D37D87C1B4CD25EAE0D06BE3A2883C8125A4613F6F938A301432C126F42D2EEA
B5B1ED7D0FB2132F5674C7A76BF7AFEB73796220B09D415BF087E619357EC3CF
A366E28F146373246DBF917C392367A4F91693FA996BFBFB4176CE31402C648F
27D7535D48E7C28FF2EE006BE36F344833A44EBFAB7531234C0C9873C4767ADD
3900303D946C567D8A9E3F7E9E791948B22A6486F8B40A0E0D468F8A76A446ED
2FABA9627C70A767DFEE77B3E55E3DAE9DD1DF88809519CDA90374C61C85F4EC
853B9CFDF44D727A3D2E6A6D11DDA9E586DECA83DE81F60F64F7855B2D118C29
B73B3CDA80A6F7661F8BF840FD8E86D58B828B6A907AF1F1AB1167ED46B88D03
860AB01938B784D4950CF3F49C3C05E315B8F5AD590C5C0EA23722F16C0B6788
29BA81C121A938B607063351B3948F107E35D30005065CA5F304809BCAAFD8B5
58D4D34BA37348AC0D451B58B9570C15BB4804675D9A63E3CD4C176440C868A7
EF96C3310EC6521C0625FB9063EE846D6BBD4DD1104044AF0F1C34CA66D0D3F4
B0FA3D7018C666229812612A53A865E437C5A85FCF80F9A2AD150B201A158702
D05713D2D2082AB1B894133D803941BDF57FB9DADFE88FCF29A630C33398D925
0E773FB87B1BCA543651B1BDDFC94FC632A61A27AB3B8D9A5C6C0B5BB8AC300A
36078CF95488E9A881829FDB680DBEE5830D409D9AC3DD5BE184DBB6C64E5154
05EB05FD3BA0B025F92F9FECEE167F89EFB12A32995296DB41AA84CE23473B67
CA721BE2B235F33CB7B9C7FE2AFD8F9B6F1408B563E1C65418DB7B9A9A659E9A
6AB399108049A9E824175146FE22D52F59FD01BD87D19D83D3AC59B945E7730E
13184EA9B9F327419374825F7BF986590B7403CE7501FCB4156098CB841FD1D7
2D05234743BF733A3610892C86B634F10EDC0234F434C368044B7351BD916185
911438D4A71FAF376F44E11CB8A620CDD7A420A39D9A72D5B74BFD37CD33A227
2C9389F510E641C69264CCDA1C583D54A1F1ACEDCD041EBFC1E22A1CB0FB5BDB
3A8738A0AE6A974107E6BA914C36B87A9C59A68A7D36EAF4EA3D42F01A50FC05
AD8434C9D533B79B215B8130973BC381759E99FB28E0669C893B66B10FDC5013
64A206A903D1939812E6F951C9404BD9C5564CE4A5EF717E24E09EB0AC5C3D1B
E1A2D7E4BE66C7149F38765FA21DAF12B247E5403F35EDE7357B5933F05088E7
FF44E9DF0E4F7FF5F2F50F5A786CFE74F5826F139E78609F7DF9AFF6FA58F107
B4BE263557D69A23BEE9A25AADF971DB47AE428F869C06A2949DFD77D49A79F0
8597E20773D66139171B0920FDB789C9EF73A12ABF81015EA82A3A9E67D41A06
F9C34AA3216EDF92086D92AF0493D88ED9584730CDE2C3388222074F819E417A
1D27A3C09EB47787FA556202FA6890483BEF6ACE288D6778B5AA961F96393153
98D079DC706BFD314E50157C98A1F71E49264275D27AB20E833DD8F2F1E6A1D5
5694403A0D6DD9A9A640233CFF5AD5EEAC7FEFF233ED6B27BB3360310AA8EF99
718B9C74C07C8B5ACC9F8207E6FAD0028E8BB039FCDBC711B68DCEF7217A2ED6
78C5FFC6298873E2D577FD5E2A2E335A2519B5E422B00F8E8554A5298B3290BA
6F4BB50969ED7DFF4E96223B851F5ADA1B5A0ABAF7B671A847F1D38CD957AB69
42B06800005AAA1F8DC65045175EBDDFDC090CABBFF2DEBCD6DD3265DDA737A6
5504B13188619C5EDE1577DF59183901563046B428BEDB6DD9FCB39D8447E71E
901C038349F6C684C05393B7982A7B095776131AF0EDC2F9EA5BA187A62E1C99
AF173C29B3CA46940448F2D5FCE2B0962CBACFAC8E0CD132088EAACA15F41327
4607D8828FECF703A9C893281870E9E735B8A840A890CCC88BB19D79C27CCF97
487F42E7600360FF1C154A47DC600663B05C46E6B737CF7C94DC68408A5D54B4
8A557A5E49C0C54B64E9AA512F98DC86B8C837ED867CF59B6BDA7B95FCB96C17
BDAAE3B06893C1A9229A9AC01D9C9E1BCADA681F2874F2E1205B4CDB14AB3FFD
06F5BD34712AF8DF6060C88B14105905881EA1A737ED946B3A7890DCCDD404C4
5AD0AA9D460124B490FA430A5DFEC463648CF31AD1FD2C4501008EC141C56E8C
B914580D4A7C1289CB3013A8858BDFCBF2F4936A00C4E86AADD4F746A372FBC0
62A29ACB88D98BFB72C8099CFD31AD65C96A18A60098F1E21D3BE1BF4AC80E6A
B0EAA438187DDB457794D567D62D4968BBF559EE0BCA70720477728599710E78
634092061DA7D757BB40F70FA35A256277A3E2E36CF66E083730DBA109EFA9E8
44A8D65D5F2343635508CB2AC4B96BD0614A74DA41869A443A561C9D03779970
2B3418CD5FACB7768BC08D29D8E5B60564283E50D20A5AFF018B97FF3B629B86
4E74555992DEA7741889FF0B681D4EB02A96DBD7D9460EA16E5BA96BA8611C58
CBBD4B73634742DA2C4065BE4372281893730662C7FB800EC25A746C810FB6B6
9E37EFE1506DCB0FDFBE994BA3C9DC23D0D054F28FF360F9EEB8277D44FA5932
03F8AF4BBB5DAD7340375D9E4FB4450FB79419E54840F6F58E3D35E46B707A67
48C22BFD918F99CA9A0EF935044A1CDB7180DD2ADBC8B77E49811A508A9B4D77
4672C1430D2E1FB39865C3CFB5B5BC9D8BA19B0232F6FC98435804268FAD88A8
17A779CCEE2A96A7452DEBB46A1FEBF464F3E0E24723B62C792A876D0CDE1162
EA885A474EF651553EDF7ABC26E3702E9DFC94E7D99B0BC4AEC73B3B76635226
966ECEF41A8F2F2F21E53FB666442853F485E3AA4FD0049CEFE468D5EFD92B56
A6E6979AC22DE31CA8E6D18DF8866896BB16A60EC58D677A59B5F3E0536F7C43
DF7A41F02523D08C756658207ED309684DFBF1ECAFA19487345B85374C861CC2
75063A5549039F896946B0052CACCB91C055BFAD149478B911C9B15EEE3D7699
A2FCC7E4FE272E8EF9E3E7558E518DCF687EE635D7B9BADFCE72CE061181C8BC
F17257C3760B598FC8A45F03D6E4D395CA2BFD4250E14F76555656ABE25913DD
ECA2F4959A79497575A045C28BA5751B08B3C37703317C5253E4E5E71B6D334C
3DCCACB45A33E5AFFC1A8F38867B28F793E9E8AC18C1093E09E48845444C156A
94737466262B82FA42CF004AF4AE67FC410477DDF9663E144158F0BC2B66CB4E
F8EC68F697CCF83B5D6E41425D42F35E0891C87C476088F6CC616A5E10134978
4A2B0EC8E995C8005B17A5FD5DBA3D4A5F453EA859DFC0D2506D7D832B8A5141
27FD6E4DE24920AA2A61A7043CEBCC0580C4BF8568662E5E5FD964717085AAF6
3FAED8498C6FD586FC341B8B5ABE0341D75B714EDC0EE9EC975B6F1A8A15D2A3
907A4209D984D9A001C8FAEDBA10318E0C013A5D6D0A28592920B002BF13E8FC
E16F39A298CE87CCAA45F4197E89A1CE299207BE9D3FD9F8186A20DDF0338AEB
CB6F749213EC85EB27781AEFF46EDBB1273A5DFF0331491A9EF091B14B449599
9CDF7AC5002C9658230A26928707E3A0D3F32AA9258755F4DDA81CD11D38DFD8
70858151BD43AFA8FE3B1E3FBCEA16D9CCB5CA884C7F8671473955473F52FA3D
E07A09F61479CAF2506C9900A8A424693B06F8E7247A31DDEA92AB8BED95E2CB
B0454251CABAD016652A3D5D555D12AC888C09738421B4F1B8C3C83887DD9BD8
D7E8AB8F4CF2A342B2FA0326D7F40DD3087314C3AD89A3DF9C4FDA229F165F7F
C4C24546193948B8306D1DD3767B36574D012F77D787A2C29462D07379856EFC
BFC84829E4BFB2949E9D05DF34CD9CDA7BB7C0E9AFAF606AD5924F82415EA57D
BDE5130E47BD3288FADD5599BE7CFBDB000014B5955E19B56912C1E9FF3B134E
0393C847F727B760AE715E2AC683E9ADA9833C9E50D128063F50575D83C9A0A7
16A5A93DDF63B926E86897366FD40A22E3A725E15E593CCA02BF70051BAB3C9E
BF009D1C180B147EAF0E39F939762642AEB5523AE463C39A05EC3284FD18EAF7
B9F2A1414A262A5D64F8181B47F116BC7A7FA338E03A8EE9998FCC66FA24F2F7
21052C8D51346C4846091BCB8C234072E620D1274F529F6612A2AEE14C6CFCBD
61B26618CCFED19A5F4EF702A13BFE05757F265AF062D628AB63F1DEA64FEEE4
A2FFE30EB8B7DA0AE28AD956A43FC776CD4074325AF38EF97C912D4A56EE9D22
4443B49B0747AB7038F4EADF10089401AAFC32E90F80C6A70F15B6A598447750
884678F7B9D05E5F7985ED08F9A72B358534A2B9051589050D3630CA3C1DFB81
8B9B38F8ADAF940C094F20320C582635DEB4B07F535556065898A918B57124EA
A06B3A16F10FF436D379D3FA1939E4A006BAD2E41AA320CFE3413DD7BD2D4259
ABAE0185FDF20C83E9F00603366767EC6253396203A32CAEA6E6E9C27C331A58
162F31B807CBD862BA62B087C94223E64380FD328B0B507CB340131327346704
B35A88B469EF48484E4CFAA1CFA0AE9AD7C8DCF84865DDC99AAEC13E338A2269
D60B48A90E8D301C3430FF6EAFB7C8294FA0EC0A0FDD620774CCC6946C78DD57
4D4CC933F42F79EB8F5BC0A01297F7BE3A7360972BE274D36103E852D45698FC
C258F8EB0C34004105CFA1C330350E2B67F80C0F664E567CB4C785FDF2EE9562
4B56C743B18442B542EAADA4F6ECA9E2C06C9D45297BE979A6AF28914F536BEE
45184B7FAF4AB6D7BACEC4BE8FFEA752FB554FED4FE56C080150F1BA59AA70B4
39C12A54FA64282E1C337019A92CAB2A46C2CD8FCF780B7497AAA44026BFAAE6
7ECF451F16E1512F74A488107A5CD9B52BC3BC091E7323B56D506764D36A0F42
E913544F4FE7F545EBDC19FD7B1AEEE644046B5FF7FB6110BE69BD39115C515F
35E462549500D95283D0EE8FCDF1DCF7B63442BAA68DD1E2B0A314E05D87CE00
C494D71CDEB322CF60C1210029F4018695DE078C310008DE9B65C48131D3C602
063F16E261385BB6136980F33778B2FEB3744C1248F11F7A2AFCCF0C39EA3A44
80B8D5D3153517B9D4C2E9D7DE588C4DA60EDF0760A1C32D25351AA0B5F26A99
6A266E183C30FEF1A251FA352D51FD6BB45B3BA7D9C5CAB3C52731719E726558
51E1B92765FA0A2E0C01B469E4F198E6A8ADE9ED6021A82719D94F6DA58F4F08
1E4EDC5AAF85B9F21710AF5420A9B401C1EDDA14C98163479979473CEC5C497D
1874995A8E1055A62EF2B850FBC4E1F0098BE1E210E8CC35EE1211393BA03A30
BA3F668E8C3D1843BBC87A3253FB1D64391EDDFFCAC39F3AB7F8E6F465219E08
90ED85A6E97995892D0054A37005BF84AB3028763BE7E7F00A4792429F5C1DD7
E12EA5A17B51FA9EECBF2FA1330EA90980A4005BD1DC5E8C7A5BC1AC2C5F140C
A55AF01DD6D2411E83616781E62ABFE0072ABC11D40E924EAFBBBE1633DE2E0D
12BE1F3FF9669C72E0AA23F3EF55DDC0282F3C7406180E892E033BC31DC0C67F
3AF267DBB638062C0EDB793F5ECA3BBEF9713B4DDC8A7AC8E4F9B3F0662B93DC
80313171540C74E8D91901CA3B2E9C8619A09E4C4A350538004D10111AEDB2E6
D567D995B3E91712B3E6CC11FE19207A79984F3C2C4EA7AAC81EB028EDE60BE1
E2AB6DBE64E24C63246820BEB2D443EB66CFD939722A285741A4B581B6B60EB8
1E657FC617FD5EE614262C4D3279FAA81C3352F0C002ECC87EC62249069DD5F5
41D01982FEA5D968628B092F95A90E9D479D1B0B34BBE05ABE736A1477805EFD
C5A1C2F4F9C1A7B7D61CD766534D5060F66C6711F04D3CC84BA14531B76A8A54
0DA29C11186C9448144BA318874C77BF480F3A0B28F46AEC00C2E26689C2AB54
0579E59C0DC8823F6F002A2C332A7635396ED582923D1AFCF257AC5DAD9C0734
16A7079D265FEED0A37F27E0925B621D1B9929B7BC501D873999EFDA42A36103
9A82B4F9209F071C9AB9C6DBB471BDE5D47FFF86F555D7079F7A220DF312B637
3DC531EFD4B56BA5161A2C426094DB02CFA15DCA41FCCEB98C2B1BE78AC185C2
33743B95FFAD8FA706B2629A303C02473115DD375C558CC87A2C62A83795E221
A03F8EBE99729B11795CE5602EFC7F7F56429A85CDE1B0CDAC22CF259EFA6A4A
C083785F814A53B9A4B3C5A7FE7F9D19A08FF2BE9DAACA78DE6F568296C47931
BBC2DF05EEBD6B682B3C8174D28CC4F7EAC9D37F3E0F321ACB5012910C4C78CA
CDC75B02DE8A7C60BD5DE70EDF2B9911E79EE443BD55DBF1E1A977AD5DF0D770
7A81B52C90B2B337D85361DD05DB181C31645E47D3BE6138A4A05713BBCA724E
7FBF86C0D64CBD717F3B74F2251795DD21426B152ED475052408E793FA40D2A6
E823324DEA6D0C424C728F6BC249F5E0B224CADB695E9D497AD32DCDBC43C9EF
AFD73A84D4D9EF6FB684E83FCD4857E47ED21DB8ADD7C831C5A9751FE7FBD8B0
D0880804E99FF28C606962D7F915FBC6254FF6FAFCA3A7C9C26008A8D8B79065
981CD00F81163E8BE4EBB929D40C527DEE9BA3DADAD825770F95F7DD1E731C09
A20C0DDF020DF6E92E7857D4803857F3D42B134A4B368D5E74A2636E9CDF4640
F4689A5C2FCC7E6F405EDE68CA34B1AF651EF14D083CC1B8FEEEC2B8ADADC3DD
04A9046DFB5793CE2B71F0737F1680671E3A6DF87E2B457C2F60C75F43EB42D6
46867293BC692C32DDCEC02F3BED0521BEB98199A7714077770262DB1B90804E
8F9915AA1D1D48DCA6DE9E6C37F7398B65A2F0423E4C19810A82F722D5F55776
F9F96C6FD832B1F6BC184115C5395B487E1A378DB2803B29C84C13ADD099952C
7C8C88A5B7FB782518408B5F6C58C255D208B4486F7A2E275E11D7FF3C4726F4
261327EA2A0C61FDECC89C37DDA0739C894876D77CD98BD21D804A869D6500D6
210F3D35C3370160590AA0C876BA15E08AA9EF1A472ABBA3B0D0D2FCB7CCF158
78D36AD326A3BF3DD5D3DD2E993BF02631FB5B06FA8CE1B1C99900F5DDB8DCE9
12C0701E54CB0395D3F983CA18228C3D39E01555495BEFCF7588470555BD5607
B976B1EC9949B4DF397631DF05B4B0151C7DB6006811CDD8FA09A0296E2D36FB
850FB046D728556B1098AC4511876BCFCF7C97D2FAC7BC5A3DAFDB9283FE8225
7CF66D59ADCC19CFA46344A2DB48EEDEFC5E142EDE2008CD41FD430E1FB59468
EE99DB6DAFC83213654293D5675FF17D2AE746C37488EC5AD80EDFCA06306BE5
CB2F113F7C2A8855D175727782F64D407AC2D9607C1AD59591BF031BCC11147B
FAA09A40105FD37B46EC3D3429952F82B906D2D1AC9A184400FA672306932F72
0857210561FC45320813D42B3BF69A8BCF2D4B550CA6499F3B71C6051529C05D
0836E8BAFBD3CA310A1DCD2C8C9D9E7BD69255DEF57FB5FF5C7ABB50F845ED16
9B123EB7A094CB3C4D332BC5BBDE211067B37481879246BCD723F7F6DAA7DEE9
9B51ED9341D74AECF24CAC38F562D4A7ECE119D7A5EE93301E0570FB4509FCB8
A43118D8A9F16392187CD12D94FCF256FCF9D33FC650A74508B66480CF1305B3
C35B19CF02B8CFE42B1678C725D030C4820428D5C8A476F5326ED2702704966B
3635843FF2D82247C5BC531C0A7BBEAEC09C965F8478030C050E5178F068970B
3F309AA385F1E5BA8A1AA611C48B1225AEEF38684374AE5F719756D480155F81
271DE48744ACD7982464120C3AB43BB7476FF71C9FE8C4FE354212DD122A0FF8
00CCA2A66D521F23D69CACB6B36871E07BA4779CE73E7863D5C280A94A661DA5
2DDAAC6C7423AB53A6FD96246F943F6612B14204F91D76B500FA984D1E36F2B7
0BF9259FA46A469E27026785ED934EC05A18AB97A4575BF19743F155734E430D
43586928BFF4BFBBD7699568AD5754662A124B863C988C674BD9651033CA1B48
01A236925954537D04F7DEC32A0F271BCBB361672266752F6CF70214EA113495
5B9E0895242CFA72F4D2F6CC6CFFD764FBA678E57E5946B56FEDF4A168C27875
69D9119EAC6601395614B91265340913E273012F4F45D4ED7B83E6C234F56B86
F2659EDF309200BE5B8707F0D177CA75B099AFA4DDBD85E01FCF45306DAB7747
05A54D82856B208912A722B1F5484914FC732FB96FCE0F16DE4E0029265AC2F2
2156519A1E7B480BA6CAADFA3713567D35C1F69CF05F716168F2BF786EF90E17
92EDD6567157050E929546A4753241971448DC3EC40BCED505757AF6E94A2125
DCC21DC93D611AA45EF4AB855185E2541687407E62166AD2516237A54790064D
8CA1F60D11E9A86A599844A3F5F0F72D1D8F015C7021B8CAE60992F6EE06277E
89ECF86B17BF0D3201C51AB940CD9F5B7E84685356F022290311428EC529F059
75F4D19061B76E069A7CF996C48889770B04553B2609CCD15A6D741BF9B04EA7
A5F717CE2A7415F5E5176CBD18896E8DE248032A192DE04F74135E31356ED78F
1CAA192EE965B5361B5022E96689EAFBD2E2426AE9C05456561043B76C81E505
93B6A8996BB3ADAD4B268B41B9E55E82F5F4F37849CEBCD0809E72DC3BE635A7
C51FC0B4E8CB277C34905A17551A53E6C066DD136F6F744F12E9734F0BC080D4
2E9D8822A84679DB594C85967534C0F8F47FF1FA83BAD447CDB2D02973F53390
80E964049B77D6E70200D4BB4F0E6917BDC34F34EA9396AF150268F26AAB0F2C
69678C6FE103624557109CB6CE639DB68509312D4F5F4556A7816CF5AD68211D
6FE5F39B6FCA8562DEC2C6EECC97C3ADD9A256963A8A6B595A80AE75A8A1923B
1D463C72CB49391D010B20F6A00478E7F17481B3B6644D88298B1AE7093F3275
A03DD18E5B1FBCA7FF731833BA171D36BBCAA94980E3E07EF2D9677DC78DE5B3
C4FD9981928563E1D2673CA14AC1FE2EFE7D1B78936903C80E1843662CDA1361
4C1536FC777BF9F706A50E2B851186357DC5BA67E30E4289FC2DFD15F8ABA966
DB3DFA034615EC3E9D8BA8C98FC751EBAF90949E0311EAE4C96AD9E1891008A3
FDB59168F071F3F3BDFDF01F2AB82E5CD2C4D948CE758C007B95B60D99F2E991
4599E4B37B4BEE093AAF466028CB80A728FD39506F70D068F22B2BA674FDEA8F
01780770B802AA17EE622CCEE9B44D2C1C3780A3CED5463610582B4A63C46467
954D0B2B4BD4AFE7999FC45C8707BC7BF4A4AB6860B93541A2ADDDE82552CA30
D73F08D2D6843CFBB3A9C7480E1007F0376EECA1A6D8CC9A66BDB2F5BDB08D70
B514C2A3B80C1826E4DE6E9E47BAA58854A47CDA843E25372E8625B802AE812C
02EBA63D2570B6A6510A3FB6AB288327CB84593E71D44387214703E33272050A
EF7CEE2C9642CB74D2B32257535DF86477C2B10D4DC73E1796430C1901961689
1778D8D0ADCFC98F827FA2584BE886EAD4D37763951788BBA9228C24ABAD3D5E
891EB0281225C6A5D5DF520162BD000C1FECBF687194B6CBB56D68BECE153567
56FF8FD5F02C69D761968505C01E84FE655F3FED256705D7B18BC4FA3CA82429
9A0419CDF3D1148AC9E5DEF45E1F9AC636B42E7EF54CACF5CDD542E1EFB5C69D
8D09FF0FBEBA0AD2922450D8B476518B0A01C11BB259A2958A6EED98E3E6BA0B
76E5EA65E827
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont 
%%BeginFont: CMMI7
%!PS-AdobeFont-1.1: CMMI7 1.100
%%CreationDate: 1996 Jul 23 07:53:53
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.100) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMMI7) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle -14.04 def
/isFixedPitch false def
end readonly def
/FontName /CMMI7 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /.notdef put
readonly def
/FontBBox{0 -250 1171 750}readonly def
/UniqueID 5087382 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
D919C2DDD26BDC0D99398B9F4D03D77639DF1232A4D6233A9CAF69B151DFD33F
C0962EAC6E3EBFB8AD256A3C654EAAF9A50C51BC6FA90B61B60401C235AFAB7B
B078D20B4B8A6D7F0300CF694E6956FF9C29C84FCC5C9E8890AA56B1BC60E868
DA8488AC4435E6B5CE34EA88E904D5C978514D7E476BF8971D419363125D4811
4D886EDDDCDDA8A6B0FDA5CF0603EA9FA5D4393BEBB26E1AB11C2D74FFA6FEE3
FAFBC6F05B801C1C3276B11080F5023902B56593F3F6B1F37997038F36B9E3AB
76C2E97E1F492D27A8E99F3E947A47166D0D0D063E4E6A9B535DC9F1BED129C5
123775D5D68787A58C93009FD5DA55B19511B95168C83429BD2D878207C39770
012318EA7AA39900C97B9D3859E3D0B04750B8390BF1F1BC29DC22BCAD50ECC6
A3C633D0937A59E859E5185AF9F56704708D5F1C50F78F43DFAC43C4E7DC9413
44CEFE43279AFD3C167C942889A352F2FF806C2FF8B3EB4908D50778AA58CFFC
4D1B14597A06A994ED8414BBE8B26E74D49F6CF54176B7297CDA112A69518050
01337CBA5478EB984CDD22020DAED9CA8311C33FBCC84177F5CE870E709FC608
D28B3A7208EFF72988C136142CE79B4E9C7B3FE588E9824ABC6F04D141E589B3
914A73A42801305439862414F893D5B6C327A7EE2730DEDE6A1597B09C258F05
261BC634F64C9F8477CD51634BA648FC70F659C90DC042C0D6B68CD1DF36D615
24F362B85A58D65A8E6DFD583EF9A79A428F2390A0B5398EEB78F4B5A89D9AD2
A517E0361749554ABD6547072398FFDD863E40501C316F28FDDF8B550FF8D663
9843D0BEA42289F85BD844891DB42EC7C51229D33EE7E83B1290404C799B8E8C
889787CDC0C51802EA1E0C63E6DE20980D3DD206F05360F78906FF0132D5F4EB
8B2384EBF991DF6A99488477067F4A8C0FCE0CDE8FDEDE80EE0E087271DCB088
9A0B2ED6FCA29399FF34CAAD2F4ADE9979E7B1F46EBCF7EAAA9C1BD7D5A7C901
C4F56769AB3279B88B453CAD4F980D5776CBAFA7A5E45EA940A80018FF8A1060
649DBA8BECEB5FB18938F7E69FDCC37A64DA9FE7336ED1BBE2609B8752409617
6D0C56A0CA33A91D7D34AC34703DD12E031D0EEDDC326DB3C7D69E2EEEF2103E
0207D54FCA89E72DF619FDA6021550754A0D030D6EAD60F32A4889A025703DE5
A8CDED50E5F7F6F06CB9A29BD7A5FA653CB399D3B21A2B4BF37F51C31C165D68
01F36ED6F31DB77CA973CF6B83D22495487E1B6024F5E3102FF2C81D6BBFEE37
EDF7922ED0D015B44F48A5D9D038D9831EF172D0346456F4B9845DC2E57D2DF0
566DC8DD79D13BF83B380CB195F7619E0F6B2578A36C3EBAF45E775F06CB33DA
90630DA177E741F5E86D6C2CCD285CE0C39070FE3BB5C5AC5EAD82753A521F6D
E159B9CC589E1DA082437A1E0CF115B3B88DE31461153596734DFC910E7D2A64
2CFE5D5BE313E4CB2B7665893A51B263E664094A94078AD2F3D7A189168D95B0
029D54A6CF6D85773F314ED03B0D43A5602416F30BC1A9B44D7AA2EE12034AB5
B2C7DE0B9F15DC55C6C808C5AECEF16F70453F209BFF0D5E9038A6603946D9D4
FA1FB5435EBFB48DBDF1521A1AA595DB64FA37D36CFD73675F18C1601CE2D5C8
92764CC093EB43726671E23A6953368F4C31CE413326629E87264D1B0D1855AB
E20AEF4B8030F0
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont 
%%BeginFont: CMTT12
%!PS-AdobeFont-1.1: CMTT12 1.0
%%CreationDate: 1991 Aug 20 16:45:46
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMTT12) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch true def
end readonly def
/FontName /CMTT12 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /.notdef put
readonly def
/FontBBox{-1 -234 524 695}readonly def
/UniqueID 5000833 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
2BDBF16FBC7512FAA308A093FE5F0364CD5660FE13FF01BC20148F9C480BCD0E
C81D5BFC66F04993DD73F0BE0AB13F53B1BA79FE5F618A4F672B16C06BE3251E
3BCB599BFA0E6041FBD558475370D693A959259A2699BA6E97CF40435B8E8A4B
426343E145DF14E59028D4E0941AB537E34024E6CDE0EA9AF8038A3260A0358D
D5B1DB53582F0DAB7ADE29CF8DBA0992D5A94672DFF91573F38D9BFD1A57E161
E52DA1B41433C82261E47F79997DF603935D2A187A95F7A25D148FB3C2B6AA32
6B982C32C6B25867871ED7B38E150031A3DE568C8D3731A779EAAF09AC5CE6C5
A129C4147E56882B8068DF37C97C761694F1316AF93E33FF7E0B2F1F252735CE
0D9F7BCE136B06EE967ABE0C8DF24DCBBF99874702ED252B677F407CB39678CC
85DDFC2F45C552BA967E4158165ED16FECC4E32AC4D3B3EB8046DCDD37C92FDF
F1F3710BB8EF5CA358ABACA33C7E5ACAD6BF5DC58BDFC3CF09BA2A38291D45A4
C15FF1916FE2EC47FDC80911EB9C61F5D355BEDFC9DB17588547763AC5F0B1CC
12D2FFB32E0803D37E3281DA9CE36C5433655526ACFB3A301C56FAB09DF07B5D
048B47687348DEB96F3F9C53CE56DDD312B93D3918CD92AF53FB9461864D11B8
0138918D0B1270C54873C4012CDE6F886DB11BCEA04B023EBB43E0D0A06BE725
741D08B9DB688731A6C8F9F0B1FDFA20C46ABF1BE836FCA0757242BE4780A41B
C19304DEC802CBAFBD0D116B1F98C01BF41ACD72DA8C56F8A03756E1850CF32D
F657FFF4377B43F208A3F33191F9F6F36FBB0CDA3514D68ACD8DCB2FE67AB377
C6BD16D11FFFD61E05B8B311EBE8D05013ECF1D03F574982E3581A188E337498
3B68080D69F7D88F2863362577B6566B9526D1E05DCAEE47F7E336489F4CF445
E5F4E1DD5EF2B795F184EC5B427C77D49CF637A5093EBCA3A9301D3A057CD545
006C0B924705AF4FCE0E82FB3B8D18CF9C771115B142F1C4BFFFE6F26661072D
C3EA6DE1D6FB7A9C7493089D5CEE57BA9C20E83DE3E847D9338D7089B1328215
E4E0BB65223399069F5D53CF8691D89A311DEBCFAF992FEBADA71CFB53B5E24F
1B727F0EC6BC105D77E4F233FF4EFB10B9265FADFB06574BF93FB1F368149F92
6AAEA1A754A8FF3136F37F3E25C29C869E9CE869B59B977ECAB24286F4B99B8A
668F07B6CC0A697CE07E67A481AC6ED4008789FE0BB89D9D11EE886FBB00C10B
CF304862251BD59DF84C0088B51C6AAC4DDAD476AEDCE5BEB65021ED6B7086E0
C55F96DB5DEF8477D680C007D8E591588B29524182108310D03E5A0E9F0F12DE
AB6842D38CF2D3EE594E9196D3494B6B03C560AADEF51E43709B65DB690CF58D
BCD88C71C64AD82FD3222B957B3DA1398C901AA5067BED7E261B031961F7900D
BCE11128049729759EA55051AFCE7CD0D09AB733586C41344448D26579CC7322
D6F2A6962192D17065765ED5DC19B6658FC069956BF9A000170329847E76C98F
B5D2B609A742C889D834D0E419B6017E2BC5C391700E23CD12F2CDFB4F57578E
D2B782DD5838CA6D96DE81A154BB93B841F70251FC68DF203C3E827F2CD1F064
4B1A7CD2E583719E3C38721834319581EAEFC2482B6B29E345F07D3FF87D4B3F
C4A190AD6DC12DF8ACECB6F0FAF648725BCAE7AD34EB8E52D7EA8E26C5D1FB82
1F542F4C5DEF2D9543A178DF450B4EBBD052865E1FEAFF870B3FDCF03EA6B61E
26A2930929243D7D1FC03C15ABDE2AD8BECFB365721A9756C4B84AF32404D98E
25BFABAEFE0DCE7BE73BAE2C5A2398ADF686493D38A4AA803B3D7D52967A84B2
331BE7B66B07C246070311CA6906FCA4800C12B71C1A540927420470EE4AB54A
74DE20E9C17514348C8001982E4D8630786922C9D95BB6D4FA8BDDE115024B4E
8D7A5C657CFED667353E78097BFB8894BB315432A74DA37C863D0F904B0EA68E
CF43158FA5E0E640018D2823001D1D738F420EB0B6540E7EC1F176487DEADF56
F2BF8924C9CEAE33342276F48AD3CF6C5DF3C63AC31F71969BDA4C2A10AF55E3
6CBEFC0A59E70D56E09AE53FE1DA8D0B451ECD532EA070D99A95A8D51D6CA64B
DBB7756C6901364B51FA62852563D58DFB6FF60E61448F4032B774E17A8DEE56
DEDABB66DB3D478775E6ACE89519B20B9A7BB0A964C7EECE3590208F50E10C28
155AD617D2718A0DE0D1E60C9F6EE7A711EABF7410ABC2DB9F3FC41EF67167C4
D639EF2F32CCC7709D75EC382685554EF0719DEAEF5FC865BC307BEE64E65363
AB4073287C2702D932A9D9F8D5769613FABB798BF2E6F1BDBF8C6E1C787BBC44
3D8778535069F4692DA7657609E560441404F4D4991F82FB63D4DBD8EE7EA137
BA6184877C5EF892023F90D562ED0408B19B0C4C9354B74A3D3147CC1EB5F070
B4823B5DA06DB29B10F03868362167B5B19938AE75062091B6E7927F848417BD
DF97BE0EA621025AC45F88860FE79EFB506A1527679EC959A9E42B6310C08989
9D3D59E7540CC672CB47C33972B6130E1834D41C7990CE5915A23FDD9916A271
F69496F2B0CE50516FC2D582251A2098BD005B49700DEE0575AF556DDA1455BA
B567D883E858208D4B794C59BB2A4FAB743244A871A1F9F9933E137B553B736B
311E9FFAE9DCADC0C139C44437F611F3A2ED50399AE7227AE67178DB3491860A
AF3079858B4247757E98F689142BBD79CCC73DF820F4CCEBDFBAC9BBED52B12A
F7ECE9C0EBF8388210A6B356902374002F51DBEF8D22EBD7D96869E09DD421DE
58DE68249A16AE76269EC77156362C241BB7045A46A4DA817559A37BD8F88FFC
CC24EE7F34F37FBDE64B1AE244D5367CF0B9663BDF380AE4EC44619B21912B67
6C0B36C7181557F8AFB345C8079A3518958EC2CB0FA1D4A311DE47B377A2DC7D
CD965EB1AE695898F63D024892E19AE37DEC91AD018F7A8032B012B9B97A9FBB
AD1DA54E1B83A95AE60C9EC189C5E5E7DD4E09B3CA8E1E6B07704CC992DC4626
0386A2256F2F2E919720868EFE4D2DF488CD6D0689C9ACBC4FBB87C163FFFB69
4F26C1B8C4A4EFBA606F802B4BA21D24A8984C98B396445D893D511FAE2F9C0F
097DBF07D692D26C06854362480D7929A0688ADE39A81473B063B806C23096B4
95F0C70A241EF7611BFFB8B0973CDF6CB6142279C4F47AE024073B20AD6CFF48
B107AF480A858DD773FF4A338C442B07493302E8239F3AC31A7F8FC23208D737
E7F8E97D50171A8BEE1EE96C08F1D20A2FEFF0D00A9DE1EC371DA48BCE0E4DA8
6FCD415A073F9F2F6EAA5704722FE3766F6F4100DED517C960D58331622CF69C
2302888348D2CE1092CF929DE671C897C0DFE44365271627E38687D1740179AE
8ED7377D240F0A2814E0C08B6616295FD4E5E8F754638C5635F8094533F69B08
5F96BA5CED2C62FED495C731E42AA2F39BCE98298D6FA8C01CC59046246496DA
3A24E087BADF19F1442861B75C2A06166B14DBC3BCC23CC3DE3219AE29822387
6D83B534A67577C784CF6B46E737E2B2179D4F147008CD1A2BBEF7B4A80CB60D
A4E4BD87347689DFB2FA0742ECD039B22B571A5113780AAFAC59C0DC3F8D5A5B
456E11B85E6E6D063CCC67B7D25A67C16B246714E62AF30B69C1D67599D5E458
7F500772A671FC0E119E5ACD77CEB46AC75B48BE133908121398079E4000ACF0
EACB950B0850E89F51E435C15C620ECF7218C2B4FF4D57D4AC178760CEB6844C
A5870CA8E051CA76C6B04C4CC80C43C41E15FFD8D4F698BCCFE7DC1C90C4CB05
23AE0FF4059C6930F3CB1341621FC1DF6540EE20D6C9FB630DCF194B08176707
C8
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont 
%%BeginFont: CMBX12
%!PS-AdobeFont-1.1: CMBX12 1.0
%%CreationDate: 1991 Aug 20 16:34:54
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMBX12) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Bold) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /CMBX12 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /.notdef put
readonly def
/FontBBox{-53 -251 1139 750}readonly def
/UniqueID 5000769 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
2BDBF16FBC7512FAA308A093FE5F0364CD5660F74BEE96790DE35AFA90CCF712
B1805DA88AE375A04D99598EADFC625BDC1F9C315B6CF28C9BD427F32C745C99
AEBE70DAAED49EA45AF94F081934AA47894A370D698ABABDA4215500B190AF26
7FCFB7DDA2BC68605A4EF61ECCA3D61C684B47FFB5887A3BEDE0B4D30E8EBABF
20980C23312618EB0EAF289B2924FF4A334B85D98FD68545FDADB47F991E7390
B10EE86A46A5AF8866C010225024D5E5862D49DEB5D8ECCB95D94283C50A363D
68A49071445610F03CE3600945118A6BC0B3AA4593104E727261C68C4A47F809
D77E4CF27B3681F6B6F3AC498E45361BF9E01FAF5527F5E3CC790D3084674B3E
26296F3E03321B5C555D2458578A89E72D3166A3C5D740B3ABB127CF420C316D
F957873DA04CF0DB25A73574A4DE2E4F2D5D4E8E0B430654CF7F341A1BDB3E26
77C194764EAD58C585F49EF10843FE020F9FDFD9008D660DE50B9BD7A2A87299
BC319E66D781101BB956E30643A19B93C8967E1AE4719F300BFE5866F0D6DA5E
C55E171A24D3B707EFA325D47F473764E99BC8B1108D815CF2ACADFA6C4663E8
30855D673CE98AB78F5F829F7FA226AB57F07B3E7D4E7CE30ED3B7EB0D3035C5
148DA8D9FA34483414FDA8E3DC9E6C479E3EEE9A11A0547FC9085FA4631AD19C
E936E0598E3197207FA7BB6E55CFD5EF72AEC12D9A9675241C7A71316B2E148D
E2A1732B3627109EA446CB320EBBE2E78281CDF0890E2E72B6711335857F1E23
337C75E729701E93D5BEC0630CDC7F4E957233EC09F917E5CA703C7E93841598
0E73843FC6619DE017C8473A6D1B2BE5142DEBA285B98FA1CC5E64D2ADB981E6
472971848451A245DDF6AA3B8225E9AC8E4630B0FF32D679EC27ACAD85C6394E
A6F71023B660EE883D8B676837E9EBA4E42BA8F365433A900F1DC3A9F0E88A26
30F2AD56EA22D77BA06F2F0A466830FEF19E34331E1F94081D7A7DF573993D0B
61B43C7B7DE0CC105B5B0AD4FB2346C2368DE176271B6AF85ABCE1604A8471F8
610521331EC001C005B32A13D9331F5FA7F35C1F7A21D7A4BF11299A2A858A0C
E5B66CE90B40391C60547F3AB3F69EDE4C21EC0A8B84C2A858129A38BC96C64D
7323F15E683EF995DB39F64EF2BB5130944079B4080F9EA9A339FA634F4E9487
4CECBB2CE721D8B6D33E6FF0092FCD897265C3F4FB8D419A00AB84DBD86BE941
1CC9F15EFDDD7CBBB2290EB737BF49552F30C6DF3A19ECDE4BA597A6E064083D
9A5DB7C0110CE0740FBD51BE961E465D13BBD2D0AC16E58D373373F4948E7C50
A02308817465EFE46902D6F960D844345DD1EB56B730CD7DA783C65C201EEAFD
B926C823C94574324BE5B4612801BB2DCCBCD41B8EEAEFC29F864E7D208ABD18
35691F17054866FC5D916E1B2A00C1395EC4511448F7BA1E3C3C629443E41976
1567EED3A98685FE77476EBEE84A624B5A0D25031B48EA5F38CD9CBD24335AFE
B4C548154D9B99A0784AE2369ACAA0F46F6E8A44067E673FBDA84D1750E3717A
6B3D74F489909B34EE61A0FDC7E494CED678C838EBB1DD2588F7FAB110084800
FAE5A4224804584F48B5DABA6F9193D1C49286553274E0C3EE06C2BB895AA812
E29DF9965115FCB07C0A68C9595B2B9BE3836F2763DBE340172EABD8BBF6DB9E
A0A0267FBEB4C50DCBCC838B1C5481D095645CB647693FF983CB7A77F645722C
39023B8CE4F5E6A603B8857B592FCF2A967F2D7CC08173022CFC8D3143E87A33
DD240DB328E0D2ED5CAB32CF3BE6B37DA1A19A4CF33C55421C3928CAFBA52F4E
BC5DA85F77772ACB1A53CADD5E399146D566D643EBB48C78FF60363869F6001B
8263F9C9DF7C1B14291C2A9333A1F69B25470F7ADD9DD0EC4591D63BACF58465
3AD134B9426F22C21C31699FDE2E85DE7A101D82117304FF7D3D9703A7217E44
7FBEA4ABE59C9FB53F0C62477998A59A652A9F3DFC8798216592EDEF754D5A76
50E611D42F507F7CFBE3532B929369E71E37D902A0040876FB8DD7DFD112B673
067F5FCADFB1FC1124091F45B001658A2BF12DA6CF4760D9E169DE215E20D0DA
2C3620D0AF19C69BD13E7A7159A2CFAB0EFAB2F72A09107AB44F14548A582CD4
AD89272E9789FF21FFBAA38AD6FEEF0C85E3880D78A65E3D9101F72481918934
63FD4B8B4CF24A6C832388477B5A555D40A672C576223C51EB3ED872ACE733AF
EC5A93B29CFF11DE8AD8ECB58F809FC6D43321E2AD6546E4020D275A26D79F6F
968E9B89E99AC126FD6F39404AF1A88198D5A2C0C4CE1E7882050D93CD801FC4
AD8D1A0334B0F3AC56AE5E60F7A674C019BE9BC18458F01EA62B810668CB02C2
FB68F5F2766888DF49645701005C25043C639DCFEC20FB802697A11E40FA1CF6
55DF72A52D2D6F810BF29283E136C1E6F0BFEFFD3CF0825A198B47B00A23A770
A0C28AD555FD08D2A0B8B4760EB6ED063EDE4B9719D4FA1A8E7941CD46C801A6
B4645B0757F3CA21CD0F8119C0B1E6FE7B1CDA8CEF6F2668E43FEA7FAE0B7B02
7C5A271D074156918BBD440830259AC9B716962AD8CCDC8FA4F2F84B3F46D5EE
BB15D948354305D8E0FF13DD32BF5ABC95E089CE90918D49554613EBFF6517E4
EE9B6D3DA3741A7D33C0AB1BA08EB5C8E06CD5702FA786548B02CE435E67F7BD
6796AC065EC47D9476B45647F61F669C667901CD926CDE522867AE975FBFE7EC
5F90F4B43812974FE981DC8EDDCAADE594C1DE20825E23F8CA75BED3B75F392F
B939EAAA2F831C7F229C17B3E40810B14EC67EBCFE6E4F25E4794E158904F49B
79288FFE4C9F4B5E0C8AACA70F88E34ADAA5895EA32E8249F998FE852E2EE038
281FF1E663424CDB90828CD9CD1DF32DD2E4B26F3828EA77E76AAE3BF197B4E0
B91E5DED8BE6FB70D2275BDDB7FF644CEF12BD16B723BC8D0ECAF12EEE52E25E
173F2E6A9C6C36E9F4F9FB7199D83D03D24E29E9A0D641A983A91A1FFFC8A314
CD9DC15E7F34B0116C79317FA4C3612DD9D0EDC4C32865B0CE8E9E2B774DFFE2
26DC69B8AD7AD6F8F8BF77765754997CF93177A522B3F10780CD45CFEA64A8AF
89D864BE2A503487ED03840A4D803429A550990DBE861EA317F490EB39405874
BBCDF431F32646DD5D34AC905E06D46BFB62070BFEC1AFC647C0456C79C26DC1
B79377E87F09F567DF14E0D30AD87FDB95AEF4C51FA871102A0DBE194AAC583F
23679254BA727A6A214C4E4FD9989EE3A30C8094AADB49D0FBA3F3E3B4258263
C7DDB9D72608E5F6E3B99FE116C673D6CCD9C47F5E3240610DCCC5AC00A73F30
C91583F620B16F90A03D3475BE771BD66EFDFCDA632150DE5AC97E952B4ED554
3F9BC9BB591F986222700045FDDA6D60EBA038DA833156BC54DEAA4495313748
6E8ECA1A33DDC9E6565DAE1E2C1FD69ED67A1E05AA0B28C528ED4499922DC695
73C116803A8010C615D3F9D269121F68B48E04EF710B574FC49C4A15A8E83A3A
D18A59B3232BACF551C6CCBD97B64028783FF429BF6939BBC76028CACD804CF6
5149A45D34F6D8ADC517B4262EA59DDE130F7AE6ACFDA695C40E83E56FA126B1
F3A0665E2FE0D7FC4B6648FDC2F8437114E507536C85D05EB2FF0BC1AFA01623
79840A9E284BA22CBDB6581F9C5BDF57F79D07F60CD15FA1DC6EC17C50822C1A
8A97D3EE4DF997004CC36A69637223240644EB1222508C5BF99FCE27852B9109
D92E66F77060C7478BD20F149C08E28B642C4C62A978BEE5DEB7B07E5261804A
0D7C068D672385DBFE2C3F9E0B2272D8200283E242195FA510C5A46E43D83038
8045D93B1990D659EB02BCF438D2DAF48A05DC23239ADDF0AFB4A20BC24724AF
9D5C2828C3D18A49CD73AE9FE1644033544110CF9E15066AEEDB86A9C02F43DE
74717001967C1E7BB6D8CC433AD76167C917C77310F659056F06422A86E1D34D
FB4F8ADDB1C30FAD89400485D101A7A2725ED5EB16C2850BC282149150E48561
D62101ED857D5311BDE330EE44776B0E1AF54BEBB37A302E80659540526A4F03
123628FCBBEACE10EBC0D75C141C3153AADBEB72EB467BF01034469E8BB4466D
A3673C29FEBC30BFA2BB199402097A66AF423E27472676644ABCA59E79EF6077
219A24280CDB3D15610628591D9FAE5B6C3EC9007190B1F36D4111BBE8BC1C28
E1C958FDD027B22CBEE14A9092C558D02BED792F3F56CE590B46E3DE6DA67B6E
A56E128B7A413F0D814AEBBAC6088726D955A9DC96D64CD567805B696F2752D6
0799764ABBACEDD7473385D81D7FFE7888277417515B82FC0E2852BC5785103B
42E89797FB6017468A3A8C356D6C8F333BC2825DF54794F79A1B4ABAEEE9A8C4
C46F28353A6933EFA8EDFDC4F69461960341EF093E2B2B944349243D53B46268
ADD3DD9E6EF440FE71FCCF97192EEC16E0E612CAF35C974449033AFCE7AABFC5
67B87540446CC4140A3E4E1384E3212E7036298132A0640D51F75BFD045B2504
70D470CD43791ADBAF38F841E60D7FE90952A1F8682827159D3DAAC8C4C9734E
191953E4740ED519B49D6C84D12F80FA26D78AE444AC5E8933A056814D869A29
67B5B19915D2AE5B50ED1B1662F2CB1F82E5C632EF692ACB19E6A7574111FC2C
0D5F057E9D428C86892CFEB8839095A4AB8271F03FC427CABB3E55B8CABA77BB
AF7DA1891625E89968BA3F47F2DEFFF3FCC1B9EE8DE5CB897065D5CE78E38173
5E48CD1791EC8B637D101D348048B1DB769219DC882213C8C1E10C66B2652B94
314C1D5CC6B31F08B4D6F30B65BC8BEDAF49DEBB96F7542337DD61150280EB29
233CA94112A26718B472E996CCBE169DBBC9C9555D5357176E6BFD9CFD31D477
E1035F33A41276E2C509A221AE8753313FC58BEE7D83CEA5A4A0C1DA7CD7E0C1
6FDC2E18794CF5B69C5B461A09E6CE5570559AA581F29E0A534BA5CEC636173D
5DEC8F5471654FC84C629FA643370BB9D36A892708B9755C0184969E67E2CDA7
674D1771497F686464792319C83987420E453CADEFABCDCC3F4981686D4C03B2
11B5DA20559261C37F27B2EAF1465A6B96947494B5508497DBF54DC5F2A03D9F
BFA8A1752FAAA5EB14D728BF6FEB972F25AF6DDD3B2913A3CE64F692D1A305EC
C2999E2A1343E0281CAC6F425F05739CE334B78073D2E1F4AEF0B705981213C7
47DC53355AF7FA967D45EC1BFA2BC0A7836099E3A006BFCB873DC765CDF3D19B
24692EC759663688BF0662F0D3F8AF55D12F0C842C27A6FEB80CFA4CBB095F57
78E554992D3D45D6A92F23F6E25A034F3553CF691672F41F6B0BF43BB2DB24EB
3B8A4830945CE9EA00168D4DF9C714EFFFCD4AC233DD015B3F4C38371360A7D3
ACB449FABB093721E1C041E72BA2508768CCC010F4A19DD67FCC7987FF987C6B
43704CF6EA27E536BD2C3F9CCD0D700B06C98AE5C22F803CAA6A8E788D155823
D358435A99660D2B34412F1D3C5998C3B40B9A73F68F54EF8389863A1814B96E
A94010947B480F8CBE845A8944AC96938513B8AE8E2E57704750FA2128F90E14
E71FA3B995E103839C29C20E4EA5066D21EE48D6224A67B967758AB269E6B7F3
18983C5CAF6B33F078A13F3DB48058D74D5D10C6C9B296AAD9EEB85902CDE344
2F6F99649CFA708173F4086B6F323A66D0FC05B144DAD0771365E03DAE2B4709
DB55A5A0827AD1EAC8B2F1A46C5D6BD0481509E641A5A019A8E58BC797AC3FD7
9FFB1A6E848CDD5D9FA2F25D80116718A5B9DF30514EE96EF7D4FEAE5FAA1724
7C854FD8B419E0B7ED814E91491517E6CE88F1AEAEC354886EE2B9E341A9E0D7
8BD42A486D989D6F50D42B45EC194D65035AA2CB86DF2B1A0284D11A3F187A12
03F5A61B4BDE407529D75535B2419F7ECEE68DBAD4D76D0118C2238B78ED9C25
71E559E6E05697D8D17E29C9377156823196EA379485DC634F4DE93C0E9894E8
2185155A437971236621DE35E5365CB420980BE8643E31FF0B89BD6655025538
D411AA419129627234E6B3096C6904B1BCB14A2D65EBBFDAACF677B50B568784
43FA5264F38A018BE9FE972721876E06EE1331E46CDD5782E0FEDB4BC8F975DA
9C5BEC3265E63D4B4800ED113C5C15CDC2F40F456982F5D0590F0E20DCC88C4A
89A1020C7C43CBA2B6F7AE7671957BED876054964EA41FDAB9E7A1FB0362C2BE
9AFC5F3C0C7D2C9389868FDFA0C3B732C7B9E107AE408EABC669360FE1E03BC3
13060ED9637908CEEF7ED5680E0DA718760CCC3CDCB60ECAD3FDC2B4CB74A735
C72C290A9A6D53B54E08FA375113892CE62F89231539F09EB4D58C776385F858
DCE3D26310C5588D3E16E2BC10B8B16A8215F363F9CDD80A94020C2FFFE3E548
49B37670C73D4DB40C7099110FC2EB93975D67F5A62369824E495A852C041F4F
2DFEAA0F42A2DDF2792CF4A2060D65542D3FECBF3477EFD3C521B90CB1EAFD49
E26F52304644F2A37FDDA0C7850A3A9B782FEFBAE353B93EEEE58ED765AF1804
C0689E37BC345979B79E3E1F3C514C42B7AB7D59F5DF5F8B40C747C300D57615
624C4FC8AC0A3DCF246B19A41E214263997AE2B6D3B312EA95844AC0671664AF
0620AE88DB37C41A4F13421EB46C829C953C5DF0317E6880E587F61CD46F4CA5
3893ACEDA038207E4A35E1D86ABE4E2B21AE9E273025DF340BC47777EE73801C
93447BDFFC43D639D852C39B28F6BEA5C90DF277DAFD9514967A8D0CCF2E7745
8FE8D5EE4DD2F23C28351649D0B342B5116BF34F732512FB416E2B319218A40D
ADBD63A2748E6EBB46F6F17F35FBB194BA6F795E3FBA0CD05A32F10C42B21889
6F819F674C01DA3EDF3238C8CA55BE4849FB352B4FD794A485250641A576F480
A084184C92C14EA83AAA5A2EB34A9284176E1A02237862368FF5ABCAA066285F
F358046D5D04907854324892071AB2A047592356D80E19987541F2D598662FA2
0365F9A39A0856BD7F93669092996399ECE51F8E477757742FB00546D688F0B9
A7C2551967142E276A290471F242B4ED9333CE2356CBC2A99EE836E2E4820B61
7986285AA88D3FC2639BF18BB3DED51BEE599F40524B4BBCEA79D1E46AFBB3C5
AC0FE26C5FFD7C6081BC175C52999659C6793C07BBB637FB36341E4DB362D773
B2909AD95B5F1E11139000EBAD51A9D24AE4085982B7E61186F243B33D12871E
D0948642F97BD79BB39D8657924314F27E820EAB750E41D29C7CFEF845D0F601
E56C7D048DC7AF3438BCBC53A07ADF38CD849BFAF21F61A4A24D17198578ECB3
4DD8852FF482546832B8BCAD2DD6074615D8DDB66A33FE3B8B0DA428D50EA211
AD5CFD15BE389F7514A5A5FE323E2B9C97441ABAF18A67F23018C43217AEF45F
17C6647937E26F5AD610F4B18565BB6CD449B81FB235448245D6F9CAAC9D92F9
FFF93C4168840261F7589B3A8DB4D0F78E2A604AD213B99303E0F6D0589630D3
B8E3159CB4783038083A91364566E263B8CC2F2455C48AE913E5157D96A2BD1B
52A261C658893878E894A0BFD44886BD3ECB11519A82CCE89CFB8274FE0F4BB5
C7F9BE905D3AAA73C27BC9FC6FCE21B65095E94BB9AB6501FC652A81BE1687A1
4C4225BFB9941EA4CB60B8D82938B93948DC23A9352550BF7DE3D46E76B0A433
4F9F1017072A2D8E7FB1C2D58E480C18FFEF81DFAB73FEA27F7ECC51F165ACB7
5F213C6CDB531E501A7A4605EC1268FE9BC3DC6B89569D96A468A320EAF91CFC
C1E4F0928291AA97FDB899EF2E9CE69EB82637B1C524078CCB1603B6088D8D00
2D0777EB4584C3CABCA195E51E7EB09CD92796A77551A6DC14E3311F72B5CA86
87CF919349C98F003AF23B5E03E6A15D1DD4B4CD8E84AD57F054A3D445F81567
D285E2DF39D092D986665B88377F455440C747806B1739AFAF84C30945D9EB2F
26A65CBFA704F774CAC3B9E38A55A82C3506D6758518AB2FE3AC89529C13D35F
87897C63B136CBC2013F2645BA7956420187A744A904AE6BB33BAF8103D6BD8A
931D22840673C62DFB28A1F23C2DC7838D1D6AD7763F9E05DEF2C121497C1685
B075C4055470A47F17085C67469BA2124830919AF3ED82B38B8C5EFAE339FF1B
EEA7A12AEE8F102E28004F8AE79B0AB60B8CC817A0D68CE0F1BD9E885094C347
C511E63D370F825EE95BE85A1D154C693C18DBCE12E942D928DCBAF016970245
4FC922B0C7970F64943ED763D2EECC3E399B506B3E56A19462149043100962DE
E413C72E7AF1136B5E094B2A4816D47CC5B47FFFF949BE443BD70545A548F6DA
DE6AFC68315885CBD2C1BC74F77F04A07A1804631E2CE1D220D9B862CFE5D5CD
F17505BDF10BF363CB97933FF5A60ACF9AC3469E4B42BBD661128B7AB31A5930
4CBE1932E5983CCC1B86BEA8DD906E875CFEAA13D4DC3F212E3052ABCC6E24D8
14B5A8DEA80E6039839B19CFE061BA7403A0ED03B1D3DE7CF9C4962ADAA81658
2701C6E68F39F9C541921FA7FE6E6447FC7F572C8E9548A7111119289DABC372
8AFDD37C56BDF6D365FA2DABE27DF2AEF88C35C3D9EBC94C94DBE31BF141E26D
8A9F5472C2D515E440BFF9620B21AAD3A4A3166279421DC7425DB3279A0DF296
05FEF91FEF850B6547D7595AF0FD13AF86684EACB0290DBD10CE92A5CD2793B0
FE0E9C3A793DAC83AD01C9E5BEF9203E8657F378CD7A792D29A0D1C407E99900
CF085BFA76F3AB5E9D8F8D59A6CE428CD5010EFEE85BF219C578ECB9756BE27C
F033934231AD14502B1F12FF836B920EC6CAC8EA3ADEDB4BD2ECA48AB23279F4
55EF74BD48EDCD56464F0516A2AFBED68C1AC0BA8391EB96EBFC60C61A8754D1
C357FA49368ED17903D6F7E760A4AD6F855E14C07D1BB8A7B343899D7DCF82AB
F34EA2499127C469A1DA84A3DA7B445134A616D6935B8EBF84C107341042E041
E5033EA0C2D23AC322397DE2E9EB3DB29CAFFA65C38C5ED79FF25DF0EF408B46
61398537747AF78AA0B8783814F1D299A1786669AC20C9FCBE5540C7E4972E41
5470A6AF6A5C433629113E51E07D3E441A95A44C4506AB9497AFD3C4700FCB0A
B274868EC73D82092C0378F4123D89EA694CE41D273FAAA0389A1AC3DB89D6C5
E0178774717C4644EF6A491E6C1BC55B146691BEB7A404CB3708E027E4313F01
57156C67C27228B58F09C7CFDFB4C90D62D4847BD098E47A3969717EAB24EB89
A997CFC2F952CD14B124FE9F1E164F3E2DD5DBA401DED52E65A8DA132EC5E5C3
7FAC370CAF8FED689F121E38A47F1256636D9BF115207541310E32101E99C055
A4B070EDB92C26E726FE6B65AAF10045B08F688828CE5E809422D1B1738EB52A
A9EE895CB904BBA7CDD3EF653D5120BA7F8F2F870BE878998A974F7F2F01C17D
C2178545059BB0742CAB359E1ABCA5B47ED445CA3F97498A6E57A5D0944634A1
7FF460EFB58E7744D7EC54E0EFC7B8C83B22E743FD6A0028F4A4361CD7935F6B
2F722AD1BB6DC8523F1E0335A4D63511867BBEE5E874FFE3CC61A7CD00228979
61E3FBAAE1BF250DB182B3C7130BD1F07B5FFAC394E79F6CFA0A017C487FDE38
CB69621E95BBFD061A5577BDCF1D1B4C66B52A76FBA718D5C248889ECF0D607E
4BE550E84FC70BE347C13FC002B64766F205935BB0A9DFEE84CB31209BFB035B
2DC6820740D31A84F6C419F1985D6F8C49B343F960A2005BA11141584A6ABC0D
DE598ED3DB0D6999EC263B3F0675C0B7A532625912EBE4255A0AE3CA812C7379
A4D321608206F7430DBAEBE446088581071C20EC2D06BB81A4F0E9E1E4381F85
C895EEB9A325ECBFF8AA313F7E4FCC1DAB66C15714B94530B936B5B3FE7603E6
B9E9FC6C7B808B14EC6C0E3B7DC4754446E8920D5654B492522DF9DEF807ADC1
FA436261C376FE222F18FC08C6D7258172E081E17E7D51792961767C349816A6
76B8EE0C03B93768E29061153016602150B816D945C7466EA7D62C77E243FD29
DF74331BC4D591E20CD68447618291F798D4BD912F53A0EC5C294A1DDBC5DAC8
A5D90ECF359640E1023BCF98509250FF5C35A68DD1B946C4ACA05B8604ACC8B2
B67D34A99BB63AD6B3B42CB8E17E0252AF1AFD9459476F03722971C52E22D5DC
099A76891B051B889AE1DE1AC936F085FA09311732382DB6156E9E7DF83A5B2E
9F6427C43095885DF47BB7555401EC605422BD8C31478545BBA64D5FBC189038
F355E3725A5602B5027D6F457EA83377F4C2DC7EEA1FF710CFFAEED5E09CE7F4
3EA1FCDB897D6A3CC766C6B399D41FA60B3B555AA3421D7660D9621CAAE2B180
AC11853C49CB604A8B2C3D826535C42F52BAA28ACACCC12043F2C346CE9103B4
37E3E1157224C43F5B2E969390E6D5362FEAA2C62F8ED0CE84E054D16D86BFFB
4351CEB16A4A391676C2DD398B8A31E5C67B6234CFB3A8142BE79BD339355553
9CBE52A02457F9D47369AF66193C3CCE2D6979A4F0F5DE831A7CF7B4E3B66511
CB8E06DE29A47938E58C100201C4BA8CFE39B5C3EEB2E1B01B57435314CAD13A
3F5035911F8B5162A4E0955DEE8B879AE105DD03CD20EB908403797D50805F51
4472A54BCCBED938E36B5AB30B73BB8F092FA9CD2B00F2DD3F828F866DA2B84C
F27B856D5CB11458D8870FC1AA728719ED43CCBFEF9820CED50DC96CA828B1E1
8D4FFCD8B6ADCFFF66B4790D1FE39CCA30DEBE04DDF04A5E55EA54C7751077C3
E72A35086C2B3E543C0D29409520CDCC8FAF6A1BA2D9A0FA7FF7FF1CC890953B
5323082EE9BCF5BA9CDA6CDBAEB9B523D86A558B5DC81D154BDCFC015434DD0B
FD457F366003122784DC67908A9DC390A297F4244E88046A24382B08A7DF30FD
7CC3EFEF685836634FF1E3EFD1E29F3CBE5797C826ABD400228070FD68888D9F
885409E2D43CD2D4D96A24DCE3E6C8838661CF32B9A102F60FD39B47D9AB812D
55EA6DF864488082611BD56E341E253BD95DB987AECE90753775371C3A2C0290
FD7FC05FC21EFB6FDABBA907DE1A961BE8D2F28F161944970771CC8DF78BDBF1
5D302DEDAE3F3519263452130B045671E0E86ED5DC0310EE26EDB4BABF8F6F08
D3C17410B205701DDB88C2F94024A416DFFECC8F7544481BF91E5DF985EC6EDB
E2CFF242AB59DE4EFB6F320906DD09800C38446F21335C20BA78B5AE65602F61
EBB1E83E9669BBDFE6BF7368A61C5E47E68BA00F640821B8991025B8B152A94A
6BED97C3E628481F6F21D0D2E1DF5EFE1F7A967DF95815B9255E23918416560A
1E1B6D5CCCD041E9712FFD6FF0325E296C0CFAD6BE60BE7A8BB5CF7D920874D3
8752031B3A48ACABEE9E19F08FFC82746860D54C611234C5D6784A115E9521EA
EAB69FA29AD8F0F2332251BD6C12DF014163513192AFD6ABA455624F7C26B734
630392B7F2455E66001C8F52287E87FF8B2EB440537C48515184388EB217B580
01F8514741191D3DC521385E82A1AA8849852D9615727933CA52FDB38064F646
1D80641978E057DFA5304323B2EFE9E2B1E2A609A935C1D74143E184D85E97DF
347D8DDD6B5CF6A6D2A27A92B2C07DB67D7A9BC3D0FCF6EEE49DD662A72808F8
3D1E9A957AF82D8D3EF0DC20F8D7EA185FE00BD3A1A8B2D4F6681FAAC22E0868
4D411260D6DC078DE728090EAE947253382E30C53AD2B256E4E5E1B6AFE8ECBB
A31BD6AE2ABE4BE777C9EE4CAF2C2798116DCF287B6D0926969000FA47CB3C19
FEA6B8887E9735F59EE43EC90D9D52B2204A410B41302E578B65548989840C1D
82BDB23AF7868AC2FF6855A8D7E9735F63CCE4D4DB2946D933330F5E9149F6E8
F5AE822AAC3A2803A393C68A393359761EEE28301A25510DE0AF46D0E9F83844
28C46629D2D484E7381CB87BFFC4AA6471F79902A3EC18658C102626F7C4DEF1
1E3B051E248491E5A8A1507F7DB367EE0620CE5DB79268D05A2E9FBB56902BBC
4EED68FEB0200D2A152580B962EEA436CBE650FA4E2884FAB6CAFE4EF60B3FFB
3B29B97A5D3FEA55F2EE2AF2ED5C262830B07E8194558E07D7AD01EC63EA9FAC
B2B33F5942D54831824D7F0376E51BA201000FF4CDAD5E94ADB1EFE4629FF710
E714F80BF3D5F5AAB5BC4800056B8F0F47F18DCAE93340B4ACF5F93574E6C974
2F27C2074BA5F1AACFD73DF602833D6F6182E10B0CFA8296436529195692D4A4
D66A39068A10A006D64A7179633440862588A5DA935B8101CEB1E5954F877D6B
7CD509AF93EEE18695ADBA9C7DC80633B05373D17059C3B7E5ECE6BFF82532DF
F06E0FFF2B63768E4538BE6BB157109F3F57585501EF7A0D5FD2248AABEDDEE5
EBD432D24FAEFECA42E27686741F40AA51698736CDF00BFED006E6E01BC3F778
A850141DFD36599CFAB70B577DF224798B4FDBC848472AE644104F5A45C3CDCF
E2AD8FA96312A36C9C1E7DBDE770728BEF2D9D74276F363442AE020ADE92EFA8
79A780E7D5C08373BA673F987E217857779FE0957A2DAA09D31E6E31E0F28375
F6D22DF1B34F8DD220E35F27E95CDC60FCA6F79A3588F7B9AE8E9E30F262C466
8DF9958BC5BC3B86DAF58D71D53700EBF407CDA4EE30F95833FB3ECF9DBDB6F0
AF1B863278C1375E42012A9AAE14FD5B075BE2AD119AD0CBA0DB26536037168F
3266A29510D9484F64E175A1581E76ABBBE80045DDD3BB55F00CF5DA368392F7
6C57BD09F9C6EA5B485F7A288D6BC61DBB108673284E051002A5D18FEEF029B7
ED30CF7DE0F2377B769427CEA9479529FF5107E7B342A2EE88961B1D887140CF
660B3022DD41E2734DF3B6679C0F2D6A9DEAF08973C360E860BB6B2FFA403E0F
147DC89FCE8FA43F6D24F13D587AF71ED81631D198BFAF2284F02BB4561D9FF6
A2EB21C665CB27D50405267ED7B9BE0D8C882C705E9FFAC6ED67E79BA91BE3EC
9578BEAB4B20B7F90016FA77CC3CBDF6C6D72A0F4FB554D07805762A1F48D5D9
A7EA63A139A412C227B3632ED4B8DD3205265B1D92B17A65DBED65DE8F27E345
DE6D022E8145EDA4CAFC5CDC03232C1BCBEB1EA4B3F56972AD79842B250622B0
F842B95D2B2C6EF3630EB04BDD66BF9FF0A33604E4D42549A4F31C37C6996AE9
6CDFF4C2459FFA02F6EE7959564280D66707ADA23AB7C596383FD9DF4AB040B5
A69A3269A44EEB9CEEA2FDD8C84EEDD546F440B49799CA812A64EBDC04467062
4B4933135372E9670D706D1DA5667323D636FCFF75B76A1D847F9AE79AC07DC3
DC4E3FE607B4DDFE118C167478E28E48380C5B0AB3604F285947108D0C11E7F6
0D49D3ACBA13642F262A2E8EFF9928B972CD1547D509BA365D9E7F8E1280AFAF
B3E58734AD0CB0616F89739FB006F693E1366D7A552453396465CC1E5830D855
7F4582415C87C765D34363984DD5F1FB73830388A77F650830904EE1EF500921
A5175769D633CED97A5C2A19068C2CE9B79B29DE01CB5DAC1304B93DD087DA08
8CDF26B6D5C6CE93264402E876A6CBC43B7EC561567546F141BBBEED2AEF3AD1
5DDC5176396898FF794BD3B7066A3F749CE2BE6A0584E0AD146D9AC8A1FB88C2
0E86EBFF3B8A2A1C77434185CA36503AFA6582A7B6D7F50B6AC2DFF5046B1F16
157AF32E9792E56E7F9B22627D004BBE81DB17EB011C4B5D439EA5F3D3B33E4D
FF9C3A968CCB76B21FDA3A08AF4E426469BA23C83EE8655D5E0A056F344B331B
C3A099C161E971F50D81F48BE931A16DACA7F119099B2876C73DF8D43DA34911
45475DAFBD42C7CB44371417A1C90A5FDE6B0951FC0C7DB145D9D080ABB457A3
E023DEAEA79FFC5EE04C9B51D2B0154304D1BDBFD7BB295B9733D6AAEFA24B60
C7E3CF549FEC3F10FD71A83515EF80C1763F7A00CC17609A61ED9D70B35FCF90
391B1D99A1C6A71ECE587523EBAB2493D653547A62127D0D073FF5665A9E8F95
81E6E59DE4D10839A4756531CE95B39AA75FD9D2A304605996D6409C0CB2067C
B13E6C61CAF7345C63F4E392C0C1579807653F12C574284DA7262C1EB4971466
16E173D0A7CB05338CD0848AA96287887A564472A7E7953887E7122EDBD193B3
CDFA6D0869F71D7B81E780320C053293806CA6BF8267F1440A9F2B27D93E23C4
AF1722F23A055FF81CB0A02493C0DDF4DD6732BC20E3DCE7EDF76749D8FF2A57
0EAAF0F9340CEC0064F74E77A169F1C400E9B4EB040C464A12122A9387674254
0193A38FABE71BF7C8C88C1856EC43BCDEE97C9A6C042DF16482187720DF2358
26E81F0E8AEE029744763481FA6C9A7FD63CF5B42572B0F1CB59B26803B57C6E
818D0F00C3312E0D0EF6FAB2BB79201689B3BFCC59D3FB89349130380B5FFEB0
75B79BE9F4C7C2781E17FD2BAC98869268B48B335D0C9B02350D9A37852C909D
4DC920E6BCE5E3C17FD0FD3C9286AD5ABFE6C5D65EDA24D3DB732C3FC408CBC7
15965817FEEBE2526E866BD2F9C7E6EB39D764E4C7F187BF49434A0F8935BC19
58C260E4B2E4
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont 
%%BeginFont: CMMI10
%!PS-AdobeFont-1.1: CMMI10 1.100
%%CreationDate: 1996 Jul 23 07:53:57
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.100) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMMI10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle -14.04 def
/isFixedPitch false def
end readonly def
/FontName /CMMI10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /.notdef put
readonly def
/FontBBox{-32 -250 1048 750}readonly def
/UniqueID 5087385 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958
9E394A533A081C36D456A09920001A3D2199583EB9B84B4DEE08E3D12939E321
990CD249827D9648574955F61BAAA11263A91B6C3D47A5190165B0C25ABF6D3E
6EC187E4B05182126BB0D0323D943170B795255260F9FD25F2248D04F45DFBFB
DEF7FF8B19BFEF637B210018AE02572B389B3F76282BEB29CC301905D388C721
59616893E774413F48DE0B408BC66DCE3FE17CB9F84D205839D58014D6A88823
D9320AE93AF96D97A02C4D5A2BB2B8C7925C4578003959C46E3CE1A2F0EAC4BF
8B9B325E46435BDE60BC54D72BC8ACB5C0A34413AC87045DC7B84646A324B808
6FD8E34217213E131C3B1510415CE45420688ED9C1D27890EC68BD7C1235FAF9
1DAB3A369DD2FC3BE5CF9655C7B7EDA7361D7E05E5831B6B8E2EEC542A7B38EE
03BE4BAC6079D038ACB3C7C916279764547C2D51976BABA94BA9866D79F13909
95AA39B0F03103A07CBDF441B8C5669F729020AF284B7FF52A29C6255FCAACF1
74109050FBA2602E72593FBCBFC26E726EE4AEF97B7632BC4F5F353B5C67FED2
3EA752A4A57B8F7FEFF1D7341D895F0A3A0BE1D8E3391970457A967EFF84F6D8
47750B1145B8CC5BD96EE7AA99DDC9E06939E383BDA41175233D58AD263EBF19
AFC0E2F840512D321166547B306C592B8A01E1FA2564B9A26DAC14256414E4C8
42616728D918C74D13C349F4186EC7B9708B86467425A6FDB3A396562F7EE4D8
40B43621744CF8A23A6E532649B66C2A0002DD04F8F39618E4F572819DD34837
B5A08E643FDCA1505AF6A1FA3DDFD1FA758013CAED8ACDDBBB334D664DFF5B53
95601766758B4BB6C93DDBF4C7D28729C5FE8E8BB90DEC35A086DF985D967096
D3E7E85306E0644684179EEB1AEA576B61F7D81DEA517C1BA8195196F20D29DD
FC06AC8D82DC24CAC6DCFA291B5D5A908EB1CC6CB0B3C0F3E7B35E046BF5DABA
E16BC5801E59C363BA6FB9E1EEF88C74846366F1456B8F19E4FC10F55FA65CB6
96C85F48D63B416B35B56175FFFD1A75138E1AE3B08625CB52023665BA6E0385
09C44B06C34382229E28BE2EF2BFE3E50B79B83CBA64335BA2DA786B88C0A4ED
D4E34C40C91100EDB6C64C822B384FE59259ADF5DAE674A5A2D1A7DBEDBD8385
E33077453C8C4840B1F16CF1BAC2496D5BF32004E14A28C04DE2F639307DBA9E
D933B57FD76E4FA8E2FCA5753321908750B010E87C1F1339B585C7AF4765B52E
785525345B95EAB1F88F6653EB94F785EAD25B965489F82D1D58A16719A62904
D9F4FB3EE7428397A9825F549258A57EDE80D7B4F35F7D051695C4CAC4EC9482
1397232DB7EB2FE91CDB826351CD66F8BA5C01C8EE8D4EDD1D9DD55D22390131
1C7E7BC4D86E883D3909D74C35C43AECD7F8BDC4D914CB6047292FB2CB381096
4585A1C759507803D7F542EB8C3E27367E0A08D929662BC2BF6459234BA35522
597895EC2D84C06F8FB5AC78297220554D7E4DF74ABB6B7BB1126A98D8B50261
30A1E7783915F9DE192E38364B8A238A9769A9758A17992B253414A11EB5D4DC
EE1B408E31427E19B2AF5F53AC142E81CF454F25C3E236FFB9E3720BFD8A3E3D
C6DD94DD6195572F50B075149AECDC4806FBBB5DAB36E3EA606D8DFA762AFCDA
3C3B4113E21B4EDB9CB7793D0C5F6D9BF547E668F17B1FBC772280B0C34F3AA7
0FAF9159097C5D47749B22B5DC8A8949D5E533CD92D9EC8350F6993EA7C7970B
9B2DE2202C4C05B659F21F55E86ABBDFB95533E3DC0FE9006B4A481DB4834032
77AB866033AB6E1B5A1F9FA43DC38E05A15915E96B943D017F2BD180BF18AFEA
1F65358D1DED49AF6A7756F190397EAB6257E18F0869C6FE2C08971E14C5BB8F
F622CF0F51127A316462C6D78585C8682D19D71B626E3E38FF3A9C606017310F
BB25F6D1DD7D58F86B86652E5FCF2F8463237E5BEB75B4B40711328B74FDB395
107BBF386195CED0313BBBFA20B9EE029BA73C9242290394E0B509B98BC3C239
6B1DA19541FBE765BE149E804CB3D7A310EB004E59E6B4FE96B9CB2B44A9C65C
67CA0B65C63E89DB2B40FCCA8C92D4BE263C284DCB66BA2F7E6BEEAA1B32FADC
7F8655171B3B5122AE9678C5F6A368B0894E6FF06E6EE7D9700E6259F38E0931
3D537793FAFD0C1619778362E4C7824AA40F73040916D83C6D1A80218169B000
1BFCAF6B06F9D509D9C3FE977D77E0C1A8A41BD2A1438F3231FF4258F961A128
02D06AEBCD34485CE827400614B1887E910140B259989FADA25CBF8D0F549303
90C766AA218A045D6F747EC814B82CB73CA2B1A0779A7688628470618B76E6A1
306F68471D4679B9A37DED269F3CEF75A49D5022ABFB2DC5DF28FDB8DC39B14D
A7EBB54DA644B1B8950747E94F31CA59E67F6E6D1C7A2427E66169EA8B5BBEF4
9479A6D93531EB072D801AD631693D2CC3CD3E3B164BEF8492850695A36DF95A
646019CC8F2C27D4E8EDDFBE7F4F0533819301AFCB87BFBCE9D6520F598CACCA
5D41A10880BAB56C1A64AF91B46B43D8A81CEFB3C7A01F79EBB4E62A7FE7B0D9
6B20F3BD5088118618144B089EA0C5B0178F8B76DC2EA2F01F9D9711820880E9
D540C5A4EDBA5FEF83F29791381B24381E75AA6F4CA938755375EE55CCA49C39
4572D82FA5DC8953874C2C3921F223F2892887961AC9A4BB41ECA529C2DC0386
33168502081DE821E94C2CCFE9D033E7282AFF6129BC835C0C0449E46DCE6F5C
E3D440B81C0A503CDB76568B73AF04F900F98D1DABC1D52C4B673913E1A56DDC
D1E5024979B24A243A02630E462466F4BB99EFE4EAB14D634CF23138E0034FCD
67503137D3B62CB20BD393D6EF36F80C62F243626A7A2D6DA9218B0427C1E8E3
CE52FB9740BB158041EC003327400DD4220FB051436898C90701C8768448138B
E0AFEC709B04C578A38DAE9EEA1F69832FE6B262F8AD6392535D19A15CBB0BA9
42B1C1A4644234688619BA22FE0BD4510C32D7855D4B52055B39A82C0D527347
1EFD0E523B12163E9AB23C7474F02B466CD4F41397D7F82BCEF6D504291ADCB2
B57EA65846DDE74A8AE9EFC86676E974B2E4F0E1BFFE96BC1BB4F4A66CA2B303
2F6F98E83B951BDEE986AEE4AD1B37E383979FEACCBE9F83FFC6F8975B928EF0
D19E24113EAF98CE0A147CD69EE0763DDB37464D0E2D2925E36BD1AB3A3493F8
76F5F97C7973D7E655A92BD8A654D21706B1621EBB15E2878B635055A32E22BA
435896F96C0C38881B1A10F229C6D75038A0067AEECD011686F05B4CF1D06E8F
6CDEB1708A55D4BBAB7D1A0C18327BDA726589C14581D04232B6135C9B01B889
799E20DDDE805746683A66F1966932F7DBBD626D098D73AC6A2451C90CA1F8D7
9C31749CC04900FF04F9079F4F956A3BBDBD5937F4D0233B1BF03BEBBEC8D1EB
DD6994B5ED9BE1A635411A3AA7B5C94901651CA1D72914009E60B20F5596D016
DD882682282B7F7BA5F7E8A1B5BEC12E444DBF0CAFF85B6AD4878516E79CDD37
A99B2F7AD15E42B867E3EDE32E3623E24B557026C3ED22C48BCBA7747E4DB792
78ED0AA1D85B9F5C0F52028A6E76BECF98EC4C7FB2BD5F8E807E74EBE8FB1523
E85BB6CE6F4B64441B5E917A64B08E14BE6B4AB2E07392D9DF6BACBE5E397065
2DEFFA5EAA259BA898D49350C686B5FD32EDAB6D812F7C71859163FB7983CF5F
FC6B92DF2933955A81A4B4FE2FD995A13CC4B9851917769B1718B351F9A61F54
300B3225FD658A565970A68642DC89AA6E02936D8C6A322C4DC8C0727773B134
66CB736F0EE8B438B58FB49D7EAD39E21CCE9BA2F9C9CD7C3D4BEA0CBEEF6F29
552236BC8B6CD7BD6841CD3C89CD6D428C43DE2DD2C3362C4E008D6BC9D73243
39EEA094064A818400B2C2C54EA94BCABC2E6AA762E509792DAF476716EC8FE9
CB0A575F371FE3A260DF72773DBA384D682F3CF79FBEE54C24A1DAC0F0722B08
67E2EA36BAEE741790858AF7512D12FA2DB3FB8D66547F345EF7383FC453A710
BC79FBBD476FDE53093F0490DE7302631F10979DEBCD7CC46F5A8776BF07CD69
A507CC4B4B29588456DAEE03049CD3DF4F0A8350771753C796B7E9AAE549209B
D8EDC39B96F62FB28BCFA9808430FFC3FAAF92F4E7C225DB23683D73DD1DF277
B285CEE79CEC3CAAF7905DFA269D5EEF25CCFAE6159FEDAF83A4324BDD675FD8
50810ADC4DE4B612692B3573A2720E141D8C8FFF9AD852DC48B306AD599E8897
548A65813A9A7422F3D24CBFF4458783E6987A4C7E3FFA7A78005A11F2152DC0
F2070D8BF942FAA703CDADB5CE41BBF1866537F8803A31044C936C896891CB16
A0FC41A267B4F069C60051F381F1FE7EE0643B969F7E4726593F867DA71A0C46
E23E9010AF8C90151A7C680431DFDCCA8D218B1C48E41BEE854A2FCD697C2373
87F497B838B48ED1337A163B04A77F29968AF2B37B13AC45A1DDA792C3E08A0B
7237271B726E4109F6BA9589FEBB61CAB022E98F0672E7BF1BED3D734D6B6AA7
2A28387FB4723402464AA4C85161294D62F492347775C5B801AFD6132CC20BD9
4608218ECB710583DD5F5228479B293F45A85E2C274DEE681D5697C3D9057A66
C95DFEB061E6FA19661DA456F9AEAF122CD14E98CADF7DC72605BAAB5E4A5817
20430B3CE4B7917778CCEA0009F92C1A091CB33A16822D61C4041CD2C0A735BC
06B6FD59E9F7B7F2FC0AC6B25DB68CFE539CF5B6B1214F77A657CA2A8BD5CB48
69373BBBA6191CD83FC840F28EA57B5B9A80A882726324E5370EA1B9DB33D003
36DBA4EA7C22A7AF4FC47FF02A565AF9269841C4C64D46B7AE5A36BF7950FA76
A7653A30C62B1D9E58EC4D
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont 
%%BeginFont: CMSY7
%!PS-AdobeFont-1.1: CMSY7 1.0
%%CreationDate: 1991 Aug 15 07:21:52
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMSY7) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle -14.035 def
/isFixedPitch false def
end readonly def
/FontName /CMSY7 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /.notdef put
readonly def
/FontBBox{-15 -951 1252 782}readonly def
/UniqueID 5000817 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052F09F9C8ADE9D907C058B87E9B6964
7D53359E51216774A4EAA1E2B58EC3176BD1184A633B951372B4198D4E8C5EF4
A213ACB58AA0A658908035BF2ED8531779838A960DFE2B27EA49C37156989C85
E21B3ABF72E39A89232CD9F4237FC80C9E64E8425AA3BEF7DED60B122A52922A
221A37D9A807DD01161779DDE7D251491EBF65A98C9FE2B1CF8D725A70281949
8F4AFFE638BBA6B12386C7F32BA350D62EA218D5B24EE612C2C20F43CD3BFD0D
F02B185B692D7B27BEC7290EEFDCF92F95DDEB507068DE0B0B0351E3ECB8E443
E611BE0A41A1F8C89C3BC16B352C3443AB6F665EAC5E0CC4229DECFC58E15765
424C919C273E7FA240BE7B2E951AB789D127625BBCB7033E005050EB2E12B1C8
E5F3AD1F44A71957AD2CC53D917BFD09235601155886EE36D0C3DD6E7AA2EF9C
C402C77FF1549E609A711FC3C211E64E8F263D60A57E9F2B47E3480B978AAF63
868AEA25DA3D5413467B76D2F02F8097D2841FE9D089F27B314C2B7095381853
3E28E2A3E68DE7B53C5E2B54C6CD18CD68055B1AAA0DCFC1822C92B3E7D8515A
7074BB2C9C9A58EEAD4ECA2AD0A1E39ED3366B4883116847B50F8FB5205C1C4E
874D6FBFD2BD12BC8B8F2FFB78FBE95A9042C06401232192FCBA5246575850E1
5E449795320455BCA50E249F3A6B3E05DBFE7A4EE90063B3B2E4DD3AF796E1D0
C67E0BF8E170DC2F6951AA2AF03C420C5540CE6C3E9B398C77E8EC78C56E2484
03750C67A3A56FAD339582374FC9761497AE621CB4BCC32CA03519AF4F6B8E8A
CFBC4294B4C29FDBF70E8E7C85AB8C4023F5BC4DF5CD68568EA39035EB0DAA08
22F375B335AB79BA8F40C0CBA6BB93CFD81C76EC90EBC343AFE059559BDACA28
F8B53DEFF4514DC6168BA8B8CFEDFE4620F1DC96EC14C17EF09A33951C8B05E0
E11DC9322C94C921409515989B8494BC281E112E23877046D0CF5731CAD2D630
4FB525778C60063E3BBD612E886BE5C4C681854D76A56C3EA67FA0F728C44761
670112A9AC1A95E93AFC2E22C0316645A51517861AD7B0E257223108E1403304
AB1690CF0E2ED8283E448897306F5021F74F73211A992366753AFD14EC8BF292
7C2CCEE4EF61033FDF95106450
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont 
%%BeginFont: CMSY10
%!PS-AdobeFont-1.1: CMSY10 1.0
%%CreationDate: 1991 Aug 15 07:20:57
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMSY10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle -14.035 def
/isFixedPitch false def
end readonly def
/FontName /CMSY10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /.notdef put
readonly def
/FontBBox{-29 -960 1116 775}readonly def
/UniqueID 5000820 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052F09F9C8ADE9D907C058B87E9B6964
7D53359E51216774A4EAA1E2B58EC3176BD1184A633B951372B4198D4E8C5EF4
A213ACB58AA0A658908035BF2ED8531779838A960DFE2B27EA49C37156989C85
E21B3ABF72E39A89232CD9F4237FC80C9E64E8425AA3BEF7DED60B122A52922A
221A37D9A807DD01161779DDE7D31FF2B87F97C73D63EECDDA4C49501773468A
27D1663E0B62F461F6E40A5D6676D1D12B51E641C1D4E8E2771864FC104F8CBF
5B78EC1D88228725F1C453A678F58A7E1B7BD7CA700717D288EB8DA1F57C4F09
0ABF1D42C5DDD0C384C7E22F8F8047BE1D4C1CC8E33368FB1AC82B4E96146730
DE3302B2E6B819CB6AE455B1AF3187FFE8071AA57EF8A6616B9CB7941D44EC7A
71A7BB3DF755178D7D2E4BB69859EFA4BBC30BD6BB1531133FD4D9438FF99F09
4ECC068A324D75B5F696B8688EEB2F17E5ED34CCD6D047A4E3806D000C199D7C
515DB70A8D4F6146FE068DC1E5DE8BC57034F7455AB67138A1B6DFCA01660EDA
B80764458B5829EB2FEC53E0A1F53FF5AF7A2E1564E666101BC844AB50DE3860
2235ECED71E86452D47F2A3E0D887538BAFE377CFC4DD49B397BEE459E06CA48
29B9E43C4C347E647725BC1EF122B368DDE812998D429F648E69E50AD0677E4F
7DF4141D36DB8E851E5082B4FEBAABC181B0CBA7F8BBB9752221FD744FDFDA73
0EBCBCD6D303927FEE493B106FF9DEDDA6EA3D79EFDAE0C063218915C60BEAC9
EA7EF4A8A0FDAE52C7390A7EF58DDB46384B615BAC1512C5CB58C7EC10E35013
812BA234E65061F364B2001E589DF2DA850322315B1797BBEEA9BF7B531859EA
A5B748A56385CA50FE153ADE0365870067ABCF6E089660983600BAB334B80D8B
A7F93CAA428E03CC9A23B1A1E7B80742BD841B0C1AC320C179E9CE0E6A1B61D9
318C021876C083C5229C8C8C82A45F5B70BE6F2C35ECEC4DAC4365B7B2F2D6E9
29F65FDEA14904A3E0CC8713630FDC80848AFA3E375E14DA9E692E87F3F1AD44
36090A9E42CCA95E9163E549DD91A8913B4F450F0409169E4B0A5C845957F696
860169D2B2489962DB2C30992336807698E9FF4ED33EB0DFBAEC3516019921DB
4C7B941293F170AA707AD416C6F3691E85B93CFA4790B24F56ADDD54C937D426
499E3A4F47A34D9AE8722BD85FC22EA84ED19743751ABFC6D087BF660C7C6283
BD78E35BDBE782C9D00A5A2893DB4E13814F1413707E84A906A4633545D8CA8C
C452DE176A8341290AD26B373CC2797C7E287072021694D77FB7972EC69B2A3C
95DB6F6F09DB25292D9AFE9CBCF9BD0424AB594869B6882DD376B24DFAE9F490
39DAA160EEC983B87D97B0ED75C045E8775937525963EF7A020B75910212B066
E0B83BD188203BEB20AFE99A9C16D85146C94659EA69F11283192C6CF189A01E
FABA21195643459CCB4127C714874A1F9E4377E43F409ACD541214F146D44286
61901BC9BC75B41DA1EDBF7B12B5A4C914B24021E82B8FD49C5D0B4A918582E7
9D8F8EE647C864702895B71199DBA6E27A616E94D666886E27D7FA4D39A3A137
E4B60D93EF3B639FF10C4AF7771A9C9C0A2819AC5491FD8B1733DBE9413DF300
19263F0FB01112FC504B7DCE1D92D1806414B54C48054043C7C5135710B1F679
0B1014E6FA29764EBFBD57D1DE3E932CEC7BC609EDF7A39B1E3B2224C6D35F66
718CE858807E0E8F95F8E08D800CC4CDD2878FA0DA4B1AE8991B8ACE68B7D195
45C5FCE27A89B42B70BEEDA694E97EEB7E1FF648FD0B11DC5816057D6214543E
4F7D9C237BC81D303AC1C2C47709AF77DE6238DA6ABDCDA6D4829004F48FA8BB
7D4D5044C6D6DC3ECCF51172EAF88E0146CB2BB3C897CA8B37B4EAA0D58CCECC
BE9FE5A7E6BE2DA97AC5A0732442E28CCA397B87F5ADDC951CA1935A434E363C
6A8A08472905939F6B2BB360878E1ABAAA7C856BFF9EAC25A97FA2787F2B2EC9
DABDAA372A6D637458C34F101BBC774D1BC3C7FC98DFDC87DFD69AC2AF52DDAB
69C26CE1B96CA7536E682B1E600EC8562938DCF7E0A5B649238A36263FBDA1B1
03CA7727623A914345A6DB992C8478500A9970238B28539FE7C2A583DFFF45A0
B3347C402742BE80CEA9492285159AFC3941DB89D125D9D88291397A7E4107E5
BF4BFC9E0C7BC32F930FF6CF620E26BAB5DAAEF0C4CC2C0D60C49D8EAA0EFF87
66778155EBB072E7AF12AFDFF2710A1D161E8C974792D92B68C880B729212BAA
92B4E4B02692308A2D3EDEBA765030E30ACA5AABA31F9C00B9C2727791AE0D4A
7CD173EA9B57E80B942FC8BBFEF2F26780E425E22EBC34AED1CCBCDD87124733
569D5529B64817FD1D5DFBE01F71DDDCF54AC951C44A7454477B4CA7C4B6D183
5C73A9D38B29CF9629C71F44C10E0F862B0866272F76E79F5AE725B1ADA4E5BC
D901041C8DD28239B4DC614F715ECF97A01E9EBA16DF23EC051B49853E80DEE3
FFBF1453DDD1B2AF75C55311AC792B703DA551090F68647D3CE82CC2C9A732E8
BFB905AD36AE882DCEF1C8455011AF92723C19981F7900B47118FC36C9
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont 
%%BeginFont: CMBXTI10
%!PS-AdobeFont-1.1: CMBXTI10 1.0
%%CreationDate: 1991 Aug 18 17:46:30
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMBXTI10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Bold) readonly def
/ItalicAngle -14.04 def
/isFixedPitch false def
end readonly def
/FontName /CMBXTI10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /.notdef put
readonly def
/FontBBox{-29 -250 1274 754}readonly def
/UniqueID 5000771 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
D919C2DDD26BDC0D99398B9F4D004B836D34E88C20EEB527CE1124209388A2DF
E27A8DF298A2693A9D529916AA0B2176E6ED237F69D84A8FEEB36861D1847207
BE2BD61C6A412FFFEDFF13AFEC32AC7735BCCE5965F5966418A62ECB99112AB3
3BC938EC590FF6922659125EB67E260BF02885E49BA6019E696D33F0B53606A2
F515E0C45F323311613A94B838491BAB9FE230C5CC79D22925E3D882799F2707
C32975A494F0F9513E4D8332E7E54470D9721FBD345CDBB48286F2F19CC6D66E
BB631DD6476A509167A49CA525A72CA50E82C1D08C2B372DB54C5949C753B632
2009B761EB90492ACD3CBE6A35CE1B66F3BC4D8DC36827CE4261A703328451D1
879438479917C1647772999171DCCF1491A1C9086E0C6393506768F8757BD81D
141C46EB9BF507EEC29962A0072B6C5D8C8588F3D68886CD2606DD3BD2FECCEF
63245494E93EEA12AAFB06110E54ADC444C7E7619627A48A464394E5DE06EB46
4C76A2FF010318BBE48B3776C826A265C66515717F7F2E943C60EBAB23D96B5B
FD514A1C4E79BB3D3D2DEB936F90CD3FABF7B09FF7F564AB5CF4AF6A40E869FD
395885A88F4A138B3CA6943A2D430BBE43D91F7F17621CAF52FB7161DA3B2003
82244FB6EE792DCA1722C03392C296C029A2DCC5BAAB3EA03F8DEB039DC83AE1
763AAB84776A2CCFFAE9EAF0BFDAE417E8BE682D237FFEDAF224AC09C9665019
165CE32F5349E857177D94AD6396570932E1657ADE4D3FF57A3419946CCD210E
57E5A1D91CF708395942527D127606350924D71BC21C6F969288B1C8CA3404ED
E6219985F7301A20621368F74747EAD38990A4C9F2B62913B8FDB93657409FF5
178DAA7F17608118E3563DD02D74E29696D1C285E9C149F6D7639D7C80A809C0
467D145F4E6AF1FEB4B61388E9A0A399AF8B7F8BD329DDFA57AAE84EF328118A
00C6D12ECCCBA48D18BCB3D3F96C8017C09FD01047A1D4E7524AE4ECEE9B3593
0AAA7EA6626A73EDA992ADBD8D503117D6E7B3B13DFB79EBB7838F23A9BD3CDC
102A399F4768D41A946D2F3CD0A2DB3BF9B249BB055DC69246F78E45903BEF33
87D1656392EE0815AA05CD02A7A770EBB0C5653B9A5DC31C6A9FDDADBF041CCF
01C38863625C63BE4C6F41A5FB92EDF3F74F839FAD86F87778ABF00BD7E97431
F9DDEA9CAA906E0D8BF3F5A297B712C196189037DA0BB6683993F8A01F4D1BA7
0A0B0C0C38610C806A355D6CC66932C262B420B3CF5598E75B2389F3B7381930
7E3755AC7C2851E361BA37B3E46F9635BFAB071B3906856452168CF25FCDD73C
EA55DB91E358F215AB36F8BA00758BA92395EB068A84ED40A4B0BC732129F7EF
0396667580C9F0EF922CAFB74A696A8BBC6D48EBAD2F651A6C599566F11646F5
D48EC84ADC499261E5D38F9224D264A7239BEC86BC1147D64D2433919F7F2578
878EE4721A6C8392E5C4DC973B2FCEBD69DD5B76CB16161E28CCB4CE2278FF52
3BC8610CABFA3FA712EEE4FC7113436367B0B921BBA229022EAE6ACAAEC5E292
9A8BFDF015AE2BFF439B0F39454829736C90D17CA7BC2D7CED95958ED26E89C5
A061B6E6870A38D878929F5D51B5234ADEB9F7F60964C9A7E48D909D282AAF95
F3FE8439077DA921BD0A4ABCC11DFF74822AF1B961E427E8431EDAC8D8B8A71A
4F51149C8586769BB441482B80EDA7C1F4A0CA843DB62635005F4E64D481569C
1EEE262FD36C134AC6FF81EE65F39A27FC38CA5A4A41D6009830ED5547787623
C1141008FB63BB65436D4145B55FBBF0159CAEF36B0A442697A8CDB4232D0B21
8BBCE4EBAAC6F9FE092658F303E6D0E5059ADB99173A7D619169CA73EBB20E11
FB33D62EF70C880A407E9DD6F8DC25C2ECC778691B1B840317F40ABE4EAD0BEB
4D3067BB6FE79013413A435F174F65DD3BF0A6F14C27113E27EEBF3C59B0450A
70B742D7AF864758D5AE3B90A72B204F8A0E10DC187F49F4BECC8D71EB11F260
084B3A81468AF500828E49B60B8D62C536FDE2E64456815B535A510341613050
D7B87C5A2F561695C8FE1B5CDED77406393492CD9EC38689BDCF4E6EC7BE59AD
993FCD1EDC7CE582E2663791CF6B66E5E539ABC03D8A4277B21D056E36E099A3
3748E66AFC14668646CBD881182A65D98727B05F560D13830D89B1DE9E5B92F7
ECC6DE77B4907DA7C69B5B1A08DD78E734A66BA91FF9BFAFB2E1DE5B0F5583BD
6BACE1F10EC6F881F6B3887B2752F6529C4DDD7CE07A8F03802E7441476D92A2
2BAE031FB49283FB56E1A94B0C848D6A7FD17409AE55D318A1BFFE8F90E05E55
7C52ADB5B15D26CD0E9A5C03F716BC0AF9E213D64BF06158BD4D341D84FB7D0D
028132BA82F702795BFF479FF7F51A99D0BE1AC0E862019B555B5799A0CEA0CD
125BC15BA48DC8A1DAC44780BC8970F3B0B53CD4C5AA3F526D0687FE6E044F3B
49E1F39127A649F67AAE22138125522B9D96065DFB060D9AEB908A0BBE3CDF8C
816E92E261D09AAEF4F4B0AA27A2345175728E89EB511F73F4BE36DAC54C909B
32429CA8DE17D6DB991C958A799B7973801C297BC44ECA8E420084F79F361407
7E0294DF8A10D38C09D555F2279696CDC08297BF5F7B7A0026F0A12317824745
A8F53B39E11B2AA1BACD0F9DB7C3BC79E549447E1DF4DAC840AAF98A4385974C
B1A964E411501D128B0ED7494E58C27D7B479A1246E36735EB2B791945218648
1A0CBB8EF7B596436FFDF65E34F71D7787B7342E238D88D99A05DDD062483AFB
19536B829D721E9E7C604BD95CBF9B07C0EA503BB9EB7D9BC4C149B57146B5B9
48C288C4651D5DFDF6573592A77D0C0FC163C5F229017500DF63D62435C2A92B
E40325B239A9513D66BB4D9BB390E21EFFB4E019DA099F71C40ABAF214B07E47
52322410354D7221E9C096B94C0179788F0F6A823CCECBC3DCC620CB06F7ADB7
592827BF4FB5205D4A5B307FF6243EF50C29A66344D7A7A122B3A76EC9A691B3
559B2552DE2F33D447D6868E813880FF02EB6F0A8F51E1EA63BC031D80478F1F
66D611E9144ACD5B7593EE1BE498656ED02BBFC28874FED8AEFEA2FCA6F954C0
7922A0783577A7E8DA06D74D018C4B9DC2927AD9C21AFC8B267156011BCA533D
C6577447C349015AFAFCF649B6AA5FDAE4C09FD8CF14C2B080723AFD52E91F54
611C6286DEA10B0928D21094B0B76956250784CB0278AC6BCE85EC1A17E270E9
4EF14C042EF0C1B3B54DDDA5C3252C931175C05890C71A173EFBCE0793D3B6A6
E2D48B61B62ED55C32B487BADC97D5EFF54A622235B87E2155347256A000B7AB
E9618CE63E5EDC34EACA261AD4ACB7CA6A21C2C5A6D4168DEAD5B36FBED12A5A
729D2A167D5F1E95DC4B28954B578E74F9DC795F181DE04FDF2DAE64ABB1F4AB
6641A2E6BC5028013741C46D6846525A9334BCE63B90F9D26BA7C7AA8E58B916
1B7906925A6F9C1B4771159353FDF7EFC559B12E259129CD51A0E16348289180
F009AC2B4FFFD4A07F718D0FAA112A0C92541BEB9985FF672CD1002E99246B0F
2D058B4A7F8ED6CFA3228B479C47C0EF38571D0836A6601E422BCA97D08CFE97
DD8D6AED32E133C19B22FECCAE752A10163BF5350A082E915E0B2C2E39BF3362
5DDF6A0507F8983F2CD763CE1DCC6FB9551DDB3356586B5185DF78A17DC159D2
0CF0967E1052255D7F9CF3B46E4CD3F40FE74169D5E6C054298EC5FB0F94BB42
818A3C8075CD50AF13F1CC47264299E3643A9A9AE7C43F2E56C828ABCB7ED48C
088A1705DDE930023C8CE28D9D743EB14A4945B31263D6522D2765A7F62AA276
44DA9B232013190C1C346954CE00EEDA6AFE896DD96B0BEC4E5DCE6D0F27EF81
AFB6B6E7C256F94C289B1C466FAEBB73023F300BB29A90A0F9332B76D6A1CF2D
71902FEDEBDC711179681601B3BAFB1119705D6B16082E4781CD3569B0D77592
F5BEE79E417841EFD2995CED35C6FBA337F90462DF6751ACAF4A39281CA6E75B
B7B9F7A830EB49618265D76C9550EB317D3FD8F51043C0F95B1AC395405ED8CD
6695E82FFFFD5EFDC1F00794041F879256C175530B85E1EC7EDEE1AC7754C311
C36449F049D86EE1E3AB196043B32ACBD7B6217EFAADDC266FF796D9FB691866
E73F4BC3BFCF76907BE1B506CAB4048EEAAA5A7933FB1E77D4BB5ABCC5CB4665
9D26B3DDF35E3F5A841F1DBBC4BAFB34A1B92C17A566A11264CD516B461BEAB2
3500BE17D31402343CE460FD467975F1A865E2D88716A64982B3CCF2ADCF5C07
579D71421933E822D3BD6C3F0FCB406659F94C114631C202596F7ABE1F37EE54
C82BE0E683EEC6C2F83ADE47574EBA0D071265AF28EF3A0CEFF9A3B48EDCEF45
EF8D808A38C8B1228F39D8C4F81525D05E6B5A322093CC791236B543D71536B6
1C31D4190EE1B14E44365C39CA6C00C3E395A133D846C75F3FEFB89DCE6137C8
FE524BE843BAA5532FA719B91900A4089F6963B22DF647B42A74FFB16DEB475A
043A760FC38850D73E6D9034DB2355A8AD3D8D966648AB35C69C5F1C9C074EA0
A401E300083F472C627477C0014B44A976A8DF5DD87E6899F0A577FF1EBA796E
BAE930ADA7CB28DA7E961F00B3C98B6873E914ADDC49E52C6BD1D44D483F75CA
3A5D3930C8716EFBD56D57C54EB0B7A647E03F5B6D35172ECD5B960533DB2630
AF88524A41AF59A2853E1AC21A48FADF96640E7B5B48D8B4E20048FD2BB78883
EE2FF11E981008A4FB03AF24E0076286A608E9B7A59316CA9D225852021D2CB5
E11B01A775BA1309A0C8B0FA1C2575D7791B0F9A2D7838CA6AD91EAC29A8
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont 
%%BeginFont: CMR7
%!PS-AdobeFont-1.1: CMR7 1.0
%%CreationDate: 1991 Aug 20 16:39:21
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMR7) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /CMR7 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /.notdef put
readonly def
/FontBBox{-27 -250 1122 750}readonly def
/UniqueID 5000790 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
2BDBF16FBC7512FAA308A093FE5CF5B8CABB9FFC6CC3F1E9AE32F234EB60FE7D
E34995B1ACFF52428EA20C8ED4FD73E3935CEBD40E0EAD70C0887A451E1B1AC8
47AEDE4191CCDB8B61345FD070FD30C4F375D8418DDD454729A251B3F61DAE7C
8882384282FDD6102AE8EEFEDE6447576AFA181F27A48216A9CAD730561469E4
78B286F22328F2AE84EF183DE4119C402771A249AAC1FA5435690A28D1B47486
1060C8000D3FE1BF45133CF847A24B4F8464A63CEA01EC84AA22FD005E74847E
01426B6890951A7DD1F50A5F3285E1F958F11FC7F00EE26FEE7C63998EA1328B
C9841C57C80946D2C2FC81346249A664ECFB08A2CE075036CEA7359FCA1E90C0
F686C3BB27EEFA45D548F7BD074CE60E626A4F83C69FE93A5324133A78362F30
8E8DCC80DD0C49E137CDC9AC08BAE39282E26A7A4D8C159B95F227BDA2A281AF
A9DAEBF31F504380B20812A211CF9FEB112EC29A3FB3BD3E81809FC6293487A7
455EB3B879D2B4BD46942BB1243896264722CB59146C3F65BD59B96A74B12BB2
9A1354AF174932210C6E19FE584B1B14C00E746089CBB17E68845D7B3EA05105
EEE461E3697FCF835CBE6D46C75523478E766832751CF6D96EC338BDAD57D53B
52F5340FAC9FE0456AD13101824234B262AC0CABA43B62EBDA39795BAE6CFE97
563A50AAE1F195888739F2676086A9811E5C9A4A7E0BF34F3E25568930ADF80F
0BDDAC3B634AD4BA6A59720EA4749236CF0F79ABA4716C340F98517F6F06D9AB
7ED8F46FC1868B5F3D3678DF71AA772CF1F7DD222C6BF19D8EF0CFB7A76FC6D1
0AD323C176134907AB375F20CFCD667AB094E2C7CB2179C4283329C9E435E7A4
1E042AD0BAA059B3F862236180B34D3FCED833472577BACD472A489B11C4D43C
322B4ED6E6EE9BBE94DF8FDFE891AB91C032F0EA9A9EB6A5625737D3CB6FEE70
4F7F68F5F7BEC064CFB10A645040965C92F287F233E5A736CA897C788D76F17E
B8886D6D4A2FB41D742EC5BA502846E4013F545C77ACE1B67D97D51380930A24
6C8B11027AF0E2D4255FD841668FD164BDECDCE7B1A09AA4D1F9FFBDC96F1C29
63B21CC65EBE99CAC9B2BA9D062321B0B1201BBCCA4FDAF3830BF3DE412D29BE
20EFE74665369AFF180E1A7956452D5ECF55AB6DE1C0BB70EBDE068A62B2CDF1
61D9FE8F6DAEEDC7B6B6EFF0F648C250065ED4F815010A6743D01DDBF1B07984
A75C29829928E64EE49266C2D2C4F61C756DF3FB67C984922D89C335BAC97F18
40591BD50FC90C5BB374C32E60AD68D8848B4434FF0BA59B9CAB51B7EE5CC89E
167D39C44DD7820411DE2BA46869B8F140060E89AD2A9022D0E65324AA1E7E78
9E8A764DF7AB2E039E7FE91FB6E109B48A05F6CC7457640D3057EC3136797601
A128EF91EFB0DD9218A0CABEF185A363D322E3645855DEA2CBC58D9B2E8EF01D
03524943CBAAAC9EABFFE5F57C3603ADF62CA1ED14C3845A78E5DBEF92A08BC4
2FEA3624002DB76BDE3BC66D00FF7651B42E60F41540F98E5F6E32AC8C5E35E2
E62AFEA7EB2BAD9A7B337DADE0E6E34F3043E21433629A3CBF825089F65F0DE0
7B26C2D24A527278EE1667E6157D812A1F292B82A84CA8C4678650D7ECCF7872
66BC9689DE1B4966EEB815002697537D1EFAA24ADE47EAFF9D4538399B8719DC
19BB3F690A36651DB337919DA0C00816278357D80DD1EDE45ADBD50B74BEC9E3
65F97C11CABF1F9833B0E16CF8CB643FAB144035D9ABB09FB7638C06AD26723C
4E81AF35259EADAC2AA83D3B0FA7B52B059F41979995FD3C33F14CC8F03B146A
A7E1C7BCBF11F27C27BF93111326DD8390A16D3C85770D0B9B49E344BF2F9B7B
8EFCBE3A50DB09115C56430E3E6F4DC0FA29C0AF272E3C1F0148B46E196CC203
76BE8F715B6E1C592A3AB613F10FAB8DA01ABFBEA9EDBB133F9FE544CF303E2A
E11089A40900473EF56A2887568A4687EE7BCBEB1C4626AB4511B80CA10B5189
BC590636FDAF30EA446B76667B2078D9A9E9A548CD0DE30C4623D11CE7A14625
8DD10ECBB18DA622CB95D3C207713AA03495E178F2AF1B00C344C96541F793FC
2E200B286958A2251E582961255D5382D092B5F2BC7F5372F3818FECAA037877
C291EFD48DD83D672E8B091EED67E77C3E6DF64770F4449A8DAD6AB8C15C2210
972805B137051B23A197D24DABDC2FEFA365D2853656631EC164C1F21A0AF4BE
822A617760B534573C0262EFE6677EA8F54123F6C110F5E39E836E4CA1D86A2D
DC56EC2E483565D0EB9DD7E494762719FC0C252D605264AD5BCAF17ACAA18E4B
915021378054D7993C62BA812D7AD509B2FE40BDB3908C450C48A57CD2B59B27
8B612A8B2EEF4C79431971A9D35235397919CEA4942AA46E43EC0733BDE31982
753A809E543C8E4169B652DC57451A6A627D6301BD41BE3F737054A0F6C38065

0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont 
%%BeginFont: CMTT10
%!PS-AdobeFont-1.1: CMTT10 1.00B
%%CreationDate: 1992 Apr 26 10:42:42
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.00B) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMTT10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch true def
end readonly def
/FontName /CMTT10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /.notdef put
readonly def
/FontBBox{-4 -235 731 800}readonly def
/UniqueID 5000832 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
2BDBF16FBC7512FAA308A093FE5F00F963068B8232429ED8B7CF6A3D879A2D19
38DD5C4467F9DD8C5D1A2000B3A6BF2F25629BAEC199AE8BD4BA6ED9BBF7DABF
D0E153BAB1C17900D4FCE209622ACD19E7C74C2807D0397357ED07AB460D5204
EB3A45B7AC4D106B7303AD8348853032A745F417943F9B4FED652B835AA49727
A8B4117AFF1D4BCE831EB510B6851796D0BE6982B76620CB3CE0C22CACDD4593
F244C14EEC0E5A7C4AC42392F81C01BC4257FE12AF33F4BFEA9108FF11CF9714
4DD6EC70A2C4C1E4F328A1EB25E43525FB1E16C07E28CC359DF61F426B7D41EA
6A0C84DD63275395A503AAE908E1C82D389FD12A21E86999799E7F24A994472E
A10EAE77096709BE0D11AAD24A30D96E15A51D720AFB3B10D2E0AC8DC1A1204B
E8725E00D7E3A96F9978BC19377034D93D080C4391E579C34FF9FC2379CB119F
1E5BBEA91AE20F343C6420BE1E2BD0636B04FCCC0BEE0DC2D56D66F06DB22438
452822CBEAF03EE9EAA8398F276EC0D92A7FB978C17805DB2F4A7DFBA56FD6AF
8670EB364F01DE8FCAFBAF657D68C3A03112915736CEABAA8BA5C0AC25288369
5D49BD891FABEFE8699A0AE3ED85B48ACB22229E15623399C93DE7D935734ADA
DA7A1462C111D44AD53EA35B57E5D0B5FC0B481820E43222DB8EFCD5D30E15F9
BA304FA879392EE0BCC0E1A61E74B3A1FC3A3D170218D7244580C7AA0DC65D19
741FA5FE6F8CBF60250ACC27454BBF0897CA4B909C83A56672958752ED4B5E79
E18660764F155E86F09EFA9F7685F2F5027EC85A775287B30E2069DE4E4D5712
E7D033481A53A2702BA7542C71062173039030CF28D8B9C63B5596A9B42B33E7
D922944A38713383D3648A4AF160A3B0C8F3379BA4372BE2E7EA49AABA75AEEE
C5DDE1D8BF68483C3D21271280ABB91D54CC819680322EAB72E1250A760BC8DA
726405EFE420635B5B7F0B48752C06083E92BDE06401C42A2C528C8A60381227
CEBEF0C9440DC034DAD9C19FB27DB399BDAEE22053591D6538587C768C1B7B0B
7D1E222D2D8AF3A6473CC4C0D6C3E0DB49068CEB8C9BD1C5CD486A50DAA10BC7
7D6286142355E3F21DD254E27C00C442728A0BAEC9D3F17AE9CE320D365152E9
EB0D5E3874F2BCEDA98521D23FCFC30B4B69DAD2ADBE80E5964ED0ABEF6C73B6
DAD30E2C5061E3747FE536E1A5D190D028F2130AF608F5DDF9DDDF1E77DC8437
ECB3EC93B33505DF47884DDBD1DC6BBE4098DF04A29AF6FA3AE344600D0AAB53
B3820DD7ECB600A3B8001C51AF2CA7A39AE1485A087FD1752DF68F55B52B4DA7
48030F2AA7E570B3D56C4EAD367B9B73FBC0A7356253233006178B9A6BC19081
B815B5988AE76FE6FAFD7AC239072B1106A3F509381AAEE79B2F2154CAC4727B
D199CDC8B4D05DF4BA006982512ABD7539E28D937B0F87FF79A3F84C29ECF943
A8DCB8BDF8EA9E7A0E7CD60BC2308C96B3E889C797D0FF28FF4847016B3DA141
E76FC6BE78A6EE9CE07E651FF86E720A1A1F075972D36E5C55162E3FE26BCE3A
814BFEB12D4C5FD24340CFFED499C7CA183E57EC4F12CFFBE3291D43F7270575
C6C3306F832EF182ADD0AA14C4D8669A17C09F632406AFA195F90C4DDC39779E
EC0A77E590211592D6EE19563963225C06C2F13265EBB5A6CFB7C17D9E77650D
11958305727AF662AE73AD0E3ED5F7E7086C5A0C3548A8129575980B06C715AF
DD55C8DF869BED0A7883491030B1A7E82C5EB04E5A7D952E716DD8F2EF6275EE
087614CFAB55FCE2BBECD7E8D9C90FD8359E929D5E0A416A23BD58158318B4FF
87B095EB63F7F052B3A77F136FD66EB2C52BD46CD7DB3091A4B78A607112B12C
4D171B2A00B78B0E1C44B0D90C20D9244281F5123DC1F6063F91E9E3E48DE78B
C862D848BAD073A4FCB5EEC9FF54B5AB8E234CCC3C7439C62ABC4A13EF1B8897
ABBF21F900C564C9A305FC36FC7224932F766E6E72C2EBB55953DFE2AFC2E3FD
33A0C6F0FDFF086E9FD796E7242596AE85B877223532667625E371D2156E4C04
0D7FFCD3337B93DF066CB6FE1E13960719EB7CB409EE805C08ACD2C06303ED9C
E34C898787A43C1B428B896551C6FEB50A831C6F8CE2073EFC662EC286CB7555
A3B42E58772E82FEE206948B8C439FEC5E4ECB9E11DC3A4CBC7611E30890E408
637A01A2118441B4F9467A98BB2A1B03BB2F5D8E3DB7D1D15C188D9E856088EC
B762F07B1C06024F7EF53A2FBD60C0A1F4C0275D07164545250ECEEF8CB15B04
A2D8AC44DDE818C4E23DFF5B846F412C1D28C52DA1EC7F6B68D2E63E6586EA41
0B01DFF80C744F65C069047200AFBD969234842863A2CF78DD48BC0BA686C91F
3B1382C42DC044F539B7089E055DDDE9E76F7EC4A120B4D8D3E14FEAD686B0F5
3EB80AD386901D788C51B61A9C04955BE06E75B24FB77F501D9937DC244B7446
60E9453930286D8112EDA6EB6291C0BDB909AA3B3EA0578815A4CE3AFC9C699C
54C86466BA0F2FC9BF260DB773E29B2D4AF20562C31E83E45950A3A777E06C18
0F29343F91938126514FB2B4A81C98E9CC420F54C8CCD614FC7AA290B7D42FF0
429259B32D92836F4B71D517C130240B63949875D2423339FDEB14B1F1FEC58D
49BC8B826DFD0C2DF5E94A4B4088A7E4029EF2B97B970A53A43F0D280CCDB41F
8F9F3573F522404F634212E534EF3B2FA648D9BF218BAFA1135F6800478D711B
9E3FC435C0D12C845F0B3E77DDA804A75EA9BE82DCB9435BF16A2B94CF7684E6
748B2BB7C5EB08C5728DE734125E6E48B895FF3483E07558714F68F2FDC0F4F3
D195335C8216499611CF9355764266CFB43B77B30E90BA64BC8EB301B5E2D060
B1C053E8071EE600A76C8309801C7927F77D1FF4CBBDB83573EAF13DB5588412
23B6F8EF8C388136CA0BD33DA6043043163E34E1B647A549136C33DCF3A816B4
BFF8424CBC2C9EA6FBFFD26B7789815EE0D3576FB50A3D0D2101D4C43C0F67BF
16984BAF98F16F7652BD26329516CF3979539C902F5BB43BFA0B1DE623E26CA0
521BE8F6908E249743D1F7E62350986EF4385E7E617B1EC50F7408CB18A0352A
9CF70E0FC30958BD6335211756B872801AA86C2F43801FDD42BE49F16DD74849
40E5F5FE77FF2948CBCC494E3D9259938F26C916EF34919924CEBEA9315B603C
5D618FEA13211BD46B019852FE26E305A4EF2362536C9FEA7475769262D3C2EB
E4E5C2334FC9E57F57BA7CFB29AD573D3FC5CB5781419899DED8B473385280A0
B375271DC9550455D9AFE5171CA247F90902D62F65F84D05B5F65B8BC80376EF
A0DA23DEE61AEE96577629DA3835F2D50C36D181D714E5CEA92198F4EDBC4A3F
17995EBCA8A6B3C86EFF6EBEA1991D3A3BC2EF33833103F462CDA92BCA15974C
49B3F1E7D585E056666A2CB937B7B49572A12E9953438F334B727200C9D7A86F
F995C454EFA2D0A5B6043E85A5D282F6C6CEBF5781A59AC4DEA90A6E4F2BCC54
B77584E08B6FB01CD73D5BAE1AFB220EF723C9F99F0F8ED7EA821FF9BFC9D57B
1F84B91A3CDE5B158D3DB7D1369D51CD9A2822D4CCF0DB935B56CF3A52866394
0899E7A965B08BB808186D885D12335BDF0095C476462297D3AC3BE208B1CA01
54CF223348B87BF3472AA2966C208D7BCC2AA07BE712AB448824D7DE9968C6F5
7B6C957577BEBF7EDCFC01EE0D276501830548E6604D50E4C534CE727BADF7D3
BBEC9CE7E326DCEFF2B5908BCF60495C7CD9E47448434353363A82096FA9E1F2
1F8C780C4917DE4EC79CF95A42CD2D15E3D51BBDB9CD624F9C358390748A9A95
5AB4DFEB92EFEF7FB8907751FA44DA024FA91C6C064B5E61069B2796590202F1
2DFF657471BADB7A62F2ABCB770815750378DDF973CD4E11EFC3D19C27C02171
4AD74C3CC0B96793A7E0EB9A0AA40C7A6D426100FF3FECF3E3CB60ADA80DCDCE
870F74D04ED5B167D965F8AD2677298548FBD803C716488925CCBC9A3C515D3D
86C03CDC708D2F95F403008963361C8E7EE7C5C62C15DBE6B22C2CDB249C4445
21C8AD0C014BBE4B28827A5C84D714327904518E36EFBF4356DE0750B52035E9
2E06426EA0395C4852AD2ED3129F4D43E3BB75B546F092C1E7CDFCFEC2F00331
D9D0BBA5D76287C4CA7088332D5BCCBDBFD20B7A07DC6619A4AD3894C699B01B
045D803FC5E36061648DD13B6BCD95844E171F4380CA89F7A7F948715630A623
DD5E011B419FAAB28B814DAFBD3DA2EBC7B6CA635D62145E87679FC56843AC49
FF421EFC70F30062D749120D1C492EF1070EAA096E283CECD8411964DEA10390
147718F191A0A786C3A9862EDEE74767762BCB27D5621A5562EE1D22BE784FB4
0BEACE3F8A806ED5257A038C8DD59D3D52CDB4EBC501C13CC9DC9BD89A51CF86
B6C3F769C470912FFDA75C99C2EF55D78874558397C923C330CCAC3C149BA314
C6CBCA464B176721E9C04D0C08ADA8BDEFEA62E3231FCA6A646F837115D0F479
E51C7E509BB81045FE2F3DCD4A761E956BAF0561BCE5A0D20C0F1C45F40306B5
B6A834974281675F2A33F258B6BF7F7AB717FB72A96C0D50DA6B6E4D3EDF9416
6640E77C36BC882A09024789FA969E730CAC7948640EC203B610D8B02B0E8897
6E0395D5C45E7D414331145412115E3DDD7D137716192A10F8D1F6E134210034
0AC5572B33F6FD9D2B95D7D62D12919B23F7CBF114A5E1FF5C3C310CB947B914
E7729E00E22E2F5E4614CE226310306FEFA46DC9ACD671478C026A15FD6668D3
3562902F13842676E2A15F813364FBF3751A6BCA132596BB02DC0BCB18463F0F
28C1A0E1DD23BBAB471ED0A91788353A27BDB2D3DF7F547A2E401DD536417F74
5CF1285AACD4D96642200201BAB9EB201272A1D102FA7B4C293787CA1DB59847
482B209F980BA3107F7538C5FA1CDC5DB36C5F0A7917FB0BF90F185CFDEDCDA7
3B1D584F43CE6CFC46EEA3907B6E81BABC903DA628077D83A1F18C291729A92F
77607547D61D0CE06750F927EA4F37AA39C1FFA07EDABD3147228D161F0D0FDA
771EF1F476174134A27076EF9AE92D3F6DA91C9568C0E27BB954E27CA09345FD
2AFB9150ADB7AEE906AEE84C5375F25C2210D3F5A3C57298BE1B6AE3CD38DEB2
97904795D70A9F2082DAA0C6071AB9E8FF71508AC77052A242DF4D01C9139805
C2F5BDEFD7BFA42D3B3335332B37983D213B6F7DDEA6217186A93B911DCC0FE6
42957686973CA3E07AD6EA4895AAAD5D5CD878AD776FB9975EDC7EE3934EB131
37EE8F063BC1EBC11D807BEE136A31A70EF2A46B36D99B98B8B1B933F032FB54
B9EAFB5CFED5D813488D6A28250605034BBF2BEF55108CA0D6FF94BCB1650F91
99071E1A1B3B2F1E8E7C89A5E4DA1F77DBF6AA289D331C35C2C2BFDE4A391C6E
FB679CA42BCB2AF018303A3F55EBD657AAD46815B45DD067823B4BC3FE3B4245
C9940627467C5F9AE0EAE53CB7CC118984272BCC5E1B8548494E812676FBCA78
A70C417C270EB6E435A6A75CAB4AE742B1194E3F9811A7B581D9C552A3EE5B1B
98E997DE7F74B3D85B46825B620B19357E4A7D82AE97C3B85609335B1B41A532
FB2F53C79A4064C88C84FCE693FA6EDB086732B6F76D31F8A6FF27DD850DD1CE
B9C29258680CE73A371B3613F17A3533C5EF5D4E3F833E563E976FD58B381643
F097AD8D3BBD1E4F0C22A79F464FB1168E6B12E503DEE9D1D563B6F9B5A8D6DB
D1FD6BF4A90DA086275F7F7AB784F8F945569601AE0499EFCBC5F5585A759D09
6829A9649317B8C53F66C083170EAD52494006623FFED560D382CE663A1B4BC0
D68B544A2D3F4AF0C1A6E50A4603CD433329F379B960A2E6822A381D91DADA65
E5D973E67820C6AFDFB917126A4C4C7CCE0C00EA9762059E3BA7C3BA56F739CA
2F89F58A2F058A78FA9F0F040A8B04B77F300343CEFEBF9357243118D9B62B83
2EC312A4AEBD8BEEDE4DBF3CBA2F574BF9AD66B43C19615961A00D70ECE67C17
6C93C248AAB0D3F9580ABDC833D52A5BE4A5C7F06C12E934BCB99C8D484A0CB3
BC75FE276F26C6AC861A17CCE8EAE60AD5E4573D4DC2FCE59477702AEA956B2A
0DB471C240961BF1402F6ADC61C3D7B72C78145B5FEB9853485C862FC428BE26
F2FCA109EC1D6F77284C5ABA95359FDB4507D921934DAF4EDE1A1071F7157982
3A9799E17F5377F27700EE7CB253ADB2371B228647FD11DC38F4FCD9D75ACC96
D6B5508773BF71AD6B9D49829D6872CE8271A17C6FC89994159850529D5A8A32
206A8BD5E688D5AEEDBE8E0195DFDD5ED07D11DC54131B7E22958959CD35E529
F9DB957C31AEA4F25811C7E0B9ADCBFCD7AE1BB84D65C7EB2BE322E245F50CE9
D611E6D52493244E89003784149E23DCE1624930D53B937405064775D2CF8103
66D2FE6F360D5AFF017C7CD773F0303CA4F8C9FD08B91E414546CECECC770884
87FA3D4EDA2E7D8474D5C30EBF966C9F40F4707E939C22779BC757DB50E9BACA
80E0AD329BABE0AABBCD5C1C59E80CF55E63F84F49FB24D5F8F953D028568083
015973AD8921C03794814AF609FEE8A5466BB982A15644C00BEDD08D351F661A
AB6DE4FD2715935A73399ED21B074120B214C8E6BBDD346CE84E704A8DF4EB4A
73C5ACF8E106D56287BF82A4C04C8AD092B9643CC1512154D04AA5213EC06B2E
6B8A5452428EF353C92B18855E9C7BE2BFE82B568AA0A4B620EAE77EA0D60755
E78C6FF41E2503A3868195127619E97805A628A0348CC7C92C3EBE700EF008A5
86B6B5736A275BEB0431FD754D9866829C9B8218552737AE357B6DEB6DE5B17D
5D86DFE33C9A4C93CAE5DC1777EA1DD2D810FC772C8855B4055A1B520BB0EF02
9B1C32FFFEA106BDE7EEFD7C05FEBEA882C2FE39993EA2BB7CB9DDF009C08642
B3B12A2752F8F6BDFDFDF83B0F8648C309248AC9274C823CEC96A0766C58488B
EF98089D39CFFC48DB5076BC1DF598C450E76E32EAC21E2A63ED2F4CD9BFD34A
23731B4BCE26D3500339CE43CCA5FB9FD2CE1BF78DE258A270490158921A8430
BA9F37EA3BAE30895A57D8BE8A3DEA3DA9E35E3AFB9E650815E81F9252427FBD
4B27B5C81F4F6D98CC7B7E289231FDEA58E629C4A414C5635B69B7ED30BD3583
2C0CE0A350FA686F91C11AC4EF37F651FF61BB9D087E42A7ECABB2073D930C03
E206ADC510961C03634984D380EE3604635695DB7B240CC9D60E31E684867FB0
C7AF5D477F96C24D377970A9B0431780F0EADC1FCF162245EEBB2C99946C28D8
E85A85CE650089EDDE2C11C224B3BBC65835D33D25DCDE8C9ECF38FC58D24972
EB715C666E5598E6F6ED4268BBAC9F99D725B95F81B3A93EDEAEA3B33EC2025B
C944E72BDEBEB532A01D263064123E1514EA9778E34DAD260C3EFB820E9B7B2C
005FB6B60E44782CBB9AAAD0D84E2A7FB9B9A003B2E9C4BE6528537B909FA590
F2AE7CA038C6912DD59455C76BFA330BD5801BB94B2869F9F4011DC70BD31FEC
A18F3944CEE997E9D984425D95C28DD02D8E0E0DED0D1FAF045C6BA250868E80
730180003EEE66D87118E677DB28B9F54AEF115FC1F1BDE48DC42BADB2F70A05
0112E3E69AE8F24E90D2C020131BCB703D4BE761B59237786AA2565B1FBE6F13
66F74844A3B2BD29F9BC483BF9931838BD701F8FE96B0751A3C2E93E326FF14A
037BED6C2D42D93E06082DEF985E39557D9A0A607D5DA570E084CE011B3F96B6
2F3633344FB5DEF35A48F468C019A9A881C036F095A4516AF9289085217C2556
62808AEB100B2D3D049629C688392CC8A62BBC7494881B5F64F71F6A280F86DC
288C82510A59277BBC18751679448EFDDB168F3BD63947E6C96897DDFF56A60E
747AF59AE10C996931ED47E0567A0FB1EB9C2A7F062E04CB75174E05D9571D1C
FA2EFBA213E13CA73D9FF1CC4661E04E4D1267CF8E792F6AC270F03C38B7DDFB
9155F17C13DC7EFBEDD541AA9FD866F3214FB78FC78DFD68A4B8819144D9A28C
DA70DF8489B06196672EAAA63953DC4987FE1BC025CFC38CAA8DD29A19E0B007
F99DF8D4D56FF048A53A5A4919256A3918ED9C87A681B168120E65E24EBA3060
EBB79FE24DBFCA590B47A732B5A84F68392E5CCD7F0AAF8AE46E8B2F7B9B629D
984BE10229CE058AEBF5A5625F3EDAFC37D75C087BBA244FCDA5C6CA4D02EA1F
3F64D397F84FE2AC9ED7D8F03BB56BB25DAFE7E691DC2F7F42B82B79EDA8111F
B98941BF10B58EAF2D86FECA8239774A6AE2AF22F8A4103D0CAA22ED11E639EA
899DC81867C0E3C42F6FEB53370D06AF2975843410C8114F5C1057D53F078FB5
96E572702A18C71E09DD607BD6CCCB2CE9D3C84E9D626CE715805C0697204A81
DBB43CD0B952BCD9EADA1FE80EE1E24B1C328FE08783FE66C8A1F615EAF8CFAA
DD5A57695ED5BF8866603CFCB4EDF22FB010CE429278CCCD13B39C7AF2135FE1
DEFED11CD2275ED4C51DAE380DF3CBD87A5502AB213D816FF6ADF4BDFC53F18B
1BA97CCC685B11BB417FEFB94140FCE2733949AC3E2E1D25BEB6E6D2E5D83144
463283C90090E110280FC2C220DA957E4F74568CADA115E02BA45417C09CC34B
EE51F2452A50D20A5B8D532C283E46E6AFBBA38DECEB61836673F76E8B20FC0E
238CE894EA5EA7C7D0AD342F87831DBDB01586AF952CA32796A6276B2AFE3269
0A26B0D6473A5FBB2A7FDD47EB4CB0AECFE2EB581146A37B403EDF0E53C2F969
450DD44BB534B0D1F8161CB2B04FBD5FB691FFBFF6AEA8664FD8F776A2C328A7
30E745E7F8D46289C8CB4FCDAF7A42371604E47AA073B7200173E1D0075A7895
747C48506669C5FB8EA2EDAC1BA526BF2A3629C7457CECEC6D8F0296C2107BB4
AB5E3895B2DA8C0B2DD14E756EAE39CC14480AC37EF83226903389C6AE3A4109
C93577F97BC888773C24DD888767B11C9628204AA55DFF463AE17936E6BCDD15
F93C818EB1DF9F2664B1BC06BEEFD54A913448E69BDCBC969B7653B868D54B81
8934B0E26F35BA405917D207E2C02266F89261C2566261D204DF7BE4E4FD30F8
E5914FC6956A02F641A478DCF80C02A2B42BA2A326D2202673C65647475460EC
99999A568C1B4C259E3B7A16B741004FF2901AF4F186D02F44B0C6D3F53A6F5F
B4066C137C8687ACDD32F7062884391D6861FF0543A377F06B4F85490F096A1C
6213247A6F0C7DFD5EF4940ACB1562927FC7EC5FFCB07A393CBF6FC21C94BF73
453B75ABAD9FBEDC164EBAA111108CCA28F219C0003C488A54BB9B2BF0858419
538058DEBA6C22CB17B7786C34D3F569B42D7065ED309A5AE6F8D457B9655ABC
BF4AB6BA6BA1EB95AFE3CD45B37BCAAD8A715629142D9D1138CD3314CF2E777D
BC790A63DD1B724741F23B4D3B39C2D3BED0023BD240C19E129B6CF5741A6ACC
D6C0310DF5A560D7CA26AB6AF212131073CDA02C770A275F7DDED8C52D673019
AC4A4D4F036F94FBAA1448A0BE735C2CA1193B0B3795B3B4AB693C5B97EE0DE0
CA05AD896B47D71CE613090AB4B0F5FAFFAC48A7F52EC247ACC0CCB10A9DF052
6D19E742A514CCFD71ED7EC2C7D86118990C93748459293FD21BFBBA03C57C59
18572EAED78F8E0A39A03A7C8C1ACE30AB791FB6C477A4B74F21DBEC1DE8F611
B1C849F0A01F93C4E1D76F5E0AF2537624C2A263EE163734F71701E05D77C1B6
AD220682785BDE886373582908664529C9D081667C7354AB745600E3A610F672
53AF7D1DFBF502594B2B50194406F831251EFE156C063B458BD4F42E7DA02833
23CF0005BE43376DECD1A306F75261D6248A6DEDF5F56AFDC8CD410BE0213C4C
BB9304DD363D0D60AB2B2D645A8ADAFAC099847344A7C010CD16E61236DBC4F6
D9EA4FB7563A01E3F799123FAB7977699D1134E49A5E079A69D8E9296A062F30
2F163064A215845D0D65B815FE0082852CABE0481120CFAA3B687B32EECA8F62
CC327D1D7BD071F9945AB8B9539AE8E8C5A717FDA594DEFE8511BBBAAD08D7A2
4072A4E4ECA0F3EA8FAB76883439ACB4727A36DF72DE574418B13CAEB099E9FB
466DED499B8E01942E2D6F72035222BC90E6BBE16ED4FB2DBEFC64CD371A6FE5
97D70A6E6319DAF2AF90064B7A240A6B11493984E63B84DD3D59B4243DE9160F
D2657C215AADB68343D6ADA3268E20CD294301ED7C46F137DC50B152A2718BBF
8EBF5880626E9DCA1DFABF1AF6828E8D5AA9150BDAF9701F288F864D8C91E976
9E9BE865B6DEB2796C6C3FFA603A947B9F43790A98058936B3109610B502B2C2
320E75318B535D194D764C0AC7A322B5DD0D4520F96036908CBB808212A7B27E
CE14671E77725B8EC619C68EB5657863D3663208D21318F7F9415B93B1E72BB7
83612E137E85645CC4A1327859818781CB1DF455AD4BFC77E49A90F893179F5D
ECF976993082E64B63ED0533008AE77515453DA9B07AB2F1F0B1CE816E6E1D4E
D0D7A445F75F126538FE849BE9A9CA6BF221DDF53BD7E9A45017D919A46B9287
1D1D98703C6622F41A997BCE4F77456A23418E6BB7C0F9FA957FE88A449DBD23
D713F39CFB2D4A639AB99409DC6DDA631A53CF8F5F617159E03BCBC89C688A22
971129FD158E8AD10D39AD3D2E6A8A469BB27AB8F929B28A3459928FBBD0C33C
4DE82E1E1DBC8DDB977706FC4B5C14087456D9634A65BF0C97D5C49593350CFD
826633734D9B96E850FBD5F3F319ABBA61397724E8D21B14FE56B6367ECEBBE8
2D7D0CCE1C2FBBE5817C3D60CF93CAEDF9886632B27DA37F7C1A0342911D160B
E520A5D20B4013983021365E2BA6792766B0541F3262A83C4E863A94FAE921E0
57EB7E291DBE76944B7CF7F0D7363681586B405EEDD879BB508FA7E4203C8854
44027B509D69E1CAF1BAA5C1A239999E190C7B91D315AA81B289FE88E5C43D0B
251FAB17BBF7D49A71F75364C6DCECAC2C22ABD8D215AFD535C9EFD9629F178A
A75E11332FF6B05A4B1569306E3F3616EE35D8338F65B6601D3535B2C6EF7EAC
C71EF79C4EE2A862A75531E4131866D6836F7569B1659A734F35C78FDA7F3DEF
39397290CF54AA9C263E7AEF736798672CFD722612716938391A1053B727C7B1
BEA9DA04AD5B47C42E7B8A53F98AF379F3353F0FD438D215B517A69DB1CA5F27
B567D55144197A840F0BCF876AF832CF3F620A1E2EB286E45794ACF216062F88
D70270FA4453AE510543FB2E62CAB84A3BD7E2F5881B20B5BFE7FAC1125F075A
84070D639DDF28A73E73478FD27FFDDFC0246B3AAE90143AAA71DEC5E440C660
857432CAB7E1E0DE1F6ECBA47F0E0448E21EA69126434DE576DD22996B9C4671
1B5B07B923B59A56A39F22396B2BE68B14283BC384F7EC76C90DC17BF57AE82E
AB5BC5D2F39C916F68167A22824BBDAEF18501224005E4E63D8A357F85CDAC2E
1F7FA28FC65DC65FF10059A658F64A06E98152D580385B2DAA906ADC3840245C
7AAA12C0945F8E14BDD097A4BA5F2BE5F6C1704C256FDE77DE6671FC25B05400
61EB206F67B7C752E406CE88205485A27E626161E3FFEE0153BCA76E4F474E22
57DECDFB9294B874FC26D354787AE7D53389C77AFDF711FA5D7552FE3FCFA9B7
DAC7564C749913F4020389E4C7F4DC4FE13ED85AC8F57D0477D752BE1722B02E
E2B54C21DA7A976EAF928B142D2E0A5591DCF14420BABDC027E06CE3CE027336
C20703A85CD2D290AD1DC4D347A05FE5E3BB87889B74B7E0CC251A58B2F999B2
F04EA13EF3C6CE11D6FFDE47712BE6C84428E7D95E26DE1BC6142876868B6929
A8F88012693A34E2740818DE3FA7458EE6160364795A3DF3CE46A3BAEDB5E361
B1BF48DCC0B9B9045F65A4E9D61BDB537FD76AB51C39CC123DDB09534FB63C1E
A5F85BA1DF0EC2736D029EBBFA7D935A20B087832EE66475FC2AF6E938363F3F
708949FCCCD04CB56E8A00628106F12D7D6B31D08D8A047C5B9E39F4C8F1A7E9
8A06D46ACF7ABE91EF88322FC5C8346310953F9C61CAAB6B8AF4C489447D6A08
125F9E06EA30D6B07DB76E305626581D69929EA0B06E104674747A436637D015
34A880E798BB653C9AE9E8BD619FFA875FDE8F488CD798DCDB0C63532D0D1A7C
C866EB30FAE071B43C02EE5C01198E81CADFF0686839C2D44FED8257A2BE9E88
32A38671E067BE2A49D3BC5C0E7893E12A04355315FB0B46EB033DFB8C101EDD
84749263790C308966FE76F6789F21CBDF83A280C6D6FE8BDB669E2F30795E46
C6EDD896F762C9F3E647BB51E43A7BB4A949F51D5599C25DB872F75D72E9BBA1
616BEA9E026069F0262868FAAA16B44DFD016F80A6DE44A4A69B5AA6AB8C0424
C2932BB816DF4F7F74145AE2A0CCEBB71DDF61B2208823E42D3AEB663E3206F2
340F7369C6645397100FE513FDBA478C5DE5C9A0839B5DD2430725529939B414
89BA91759A62625E40B92E834A9EFB3C68005876010F9CAA8BABEEDB06B6A554
21609C50731E2435361AB8F53BF71B878591F8E0BDECC464736D96271F8872AE
ADBE8BE4A26B8145480F7EA4AFBA97EA46F6EFE3A52A20711ACF947EF3F8B580
500DC99468972BB657E57245D4FC01F8665C939D385BEC9126193E1DB54E1078
042F0B0984E812A44726C4B369EE9CE54083A417BC8ABB50A6F2B185E3B8BCBD
53A75936812779305A859E533617E5192DA6C3531189CD57DB856B29807F383B
530DE0218926F7A6FFAA401D3864931FDA344BDA891E32359EC567739B25CEC1
A4C8169F251ADF4594215549F7F225DD1F20F1269CEBFC88CBA7CFF4B7214B3A
C111FE9B511A8703810E222406D86F41996815618661ABB2C69F663AB97797B3
81D7BA0172D90246E5B076662ADAA4D2BC8FA1BDA20F13F9CB5A70465667B32F
EE2A1FE5DBB8BF41ADA4B7D3970DCE1972508929AB078E35391BD8D8C0FA2FC9
A0C63973A0236E7582D4EF32D3213BEC05DF0ABF760767CC5020B609E8225CAD
E64A95D1E7D032833DD90ACCE8B5E40A3D57D6D5F0B36617644E83AD6BB70DF0
DCD7D9410B7F47763F7FE5533806A1DE39BE6241C07B2BEBCE630CF7550B1595
81EE53E4C92D15FE69B8591DDA933337F7F789B3BBDCC5526B10BB959E76225B
2569292E55B90B4465A44624AA45A4327E23650D4C9A941E8D86A2D619CDA196
EEA705015C6EA8330D3C04F293512955F38C4170C12D709C55A2832C58930C13
D9B37FB7D4C8B0FDCAB5BA07FFBFCD805FA6089DC09D2CEBF1DC3C894CFD93C9
9BC945C25591C38596062BCF218F28DE9B4EE244182FDA170A07A7A6CFFFDD8F
B08F7AD8857066E582F48C596F3C3B3AF67294D1C45C5E5E6C2B7BF67C8AE472
79835988AAB90BFF38E234EB1F49E67200F77BA40CFE10463DF43FEF5FB13F1A
7CBEDA0B168FB8DF78C793CE54D309AD9212A1EB5883C5FF17CB637390D2DBD6
07F05E04CE60D3211C1A32304D1DF076EFEAEE3ABA07DB78D9C13F58FB5B3DF8
1A92DBEDB9EA5C55E3752855AC1225A2345D3B9E37F4068272AA3E465C74D122
782864FEC675506304AFE1EBF79D0972A652D452FA8F70F9C6BB5F7B521E534B
1EC7CC493DE8D55C2F0007B2204D1E59383FD1380519DC4E699BF7AF8D81DA1F
8B0E9626F17C2F620117230E9BF7C4A58F42F8CC037182D73D7DD884A04E0C38
C9B7B80589278B76C2C858C9735A5816A0CEA72F099E038895151004E1DC8CBC
B8D53BDA668D8F985BF4FECA6E8646042DBEAEF1AD6579B60FACA93175F3DA04
40F034036E621E1C7F31A376B3765B285B7E4CA83CB8CC1014658C2004D777E2
2D08F4B307A0E63DBB23B21D2A49101BB7CEACD2B40A686DD7C66F4FBC5B6163
24F3A4F48706C45D54FE0056B5C4E748FF43EE41D34563867E41D8160500122A
2115AB57213917F5B1BEFFDA531DEE363AE61D480B05F7F2F440B851B6CE6265
2FFA0A0FCDACA7C1FB9948A63967B3E4E106A7D2194844E368623FA61D327321
C0949D6495FD37433D8157365435FC316539671407676D347F7841CAF39E315D
00B2F5878D64D0BD920D3E418CBEBE3EF5717D509F0AD20C2B9BF8B481F8D7ED
B1ABF3595255DBF1DA8AE4FEB4EF00FCA5E681AC5C80F71ED707CE5B6D0DD8B3
800B87042E1CA1C3FE1AC461FB47E7A8AF5977DEDEBD2B1FAE57780342CAD7B6
205770B6D14E8C4387DF27056D3E3AD60FE0811A1F9D2D7DFB6D1D52CA8F8E6C
3EDF8F78AE862AF1D75546E4C0C624CC57A18FD61968CF742FEA4B45C758CD53
78DA3A32960328BD4079C7280F19AC3FB66D24DA8C9235AE7ECEBA537F09A958
F5FD63C4E3A0C49F44F8CB0A828D2A7DE24949138C7206354D6BE8CDB99BA5D7
C60CB286AE290268214AC0A0C3F775BC92DD5326A100CF4842EDC00AEC236CDC
E4F8F8448596B7E59BCB5EFFCB7D8C90837FA5BA690B9FB4D4F24BE0EF5EE864
717394793E045BA233A7B146AFECA0664577795ECACF06E811E1A0147A38A3B9
2941416AFB19B4C82A73921AA970B08D68818AB2F159E527EB7C48B64C43AA2D
D5DD0DAD15AD0161667D273BFD59BA13D7AFD709F43DA9E1E5B3B5CCFE7EB38F
08DDDD02CC0CA2A60CEDB070D54AFD8F8EEF0B460E839A2904A8DE16CE73F632
3CBA9A65DDC7DFF06E5FD2B074A6312D01F8D75491B87EDBDAF045FD2093AE79
0C2CDF2CD7677D4639E412812A7E95224C3995631589DCFB5363C82E7D1F66D8
3224A7172E5F0DBB88275EA86428DF0D223AD4079C9D233CCF7C83D3D488EA8E
0D1A5710DB03D00B4729E51803322DB1C649D2C0FD6D3ECDD66DF8EF0FA80B1C
C447EBBAFFFE5BCA6262F252CAA42FDB90837425645E57637A4FE5DE5CDF423F
85E41136A2DB6EEF9FF48965C73E07A1FA4C9C0DB88E5FDD963E55528C8986E1
030CD62EF13B3DCD4936080F90EDD2CFBBC294E666E0D78D448CA04113EFF2D9
C467D9E7616C426F93C1AA8C3D31D26B2F14C4B1ED42390E613B4881D137F79C
07A1E8874FB91F8C3F561945FD8903D4BE99F18212E8DB95BE4220E57876DA3F
5D502316602D0CD1B1121FC930F08BCAC9D6E5B9ADF80B3C1CA1215756F11ECC
7D2DA3D97ED094920C38CC4A68D7BFB6F75E8431A3840D5845CA8752F14AAF8D
F5A80ACF8E703D88EDCBE251C10238BBAAA923DC490049E76DACCD2FD320C349
7FF97E3E2A9EC49C5EBA951F0EEA06D48727CCEC45DFE86D667725454B700F97
06B1A6521B25A0B5034BB64EFD4C7AD11E83F24BF7ED607789A1AE805881E4FA
A5A8610DB42BC7341F81D63CE70A7E37715449BD850A4CA83A0C0EB1A33A29D3
82630F9F62CAA98AF0AEAE3E0F450B925E24A82907A642366EF798CC064FF67A
D3BC3D3CF3BD23641A91F2DB09680BBED2586A8869FC8015134901F7F4684B70
73E4D6A466F013F76619BE61A4B9F66BF167EA7FF7DCCFDBDDE96DE78EBBC0C4
A4DAC9DE8D709078F4C134FC1BBF53315977ED4C9C41CC4A02026E4C3443653F
39B23880391A2320170337F211CD83794118E5A014922CFBD8482D88F5622059
3DE77CCE12C636241FAE4F5B91EFEBEFF1EA36C91465BB15A49EE3202451B862
BECD7D819A56F7D7E46F981BD96FF1FC2587943D90F4B0F7B4C6ED4B76D6050B
01C551C265BCFADE1E2D72A0FD4C8AE9559C7F2723769B1E3254E33B7725321A
1E57D149D9A3091EC5714180DD68B89D7BE2AEFEADCA9585069CEF9D5FBC51F6
B526E00E168E72F5CC9A70349DE30D46C50D30536821A4D988488C72AA9A8E87
52DF5FD0ACDBC377A37AB3140D89EE5803A70886696176D2CB7D226443866046
174AF7D525A28D851AE35BC42A2FC7EE4777EFD0E1650F7BCBEF9DF1AB64870B
CA1E15C7D67B3FC527B86723054D6C1EF1A869A9FCD5244D0BCE4182BAFF60BA
C7DC0ABB04C31C92741C14627D5ABE692403C6624B6CA64544E905B11C6D8FD7
1F28055E4BAA5CB25996FE88F502742F42E11D087F61117F9730652F493329A2
453D9508DE874DD92BE4185F6A7BF99E562EB614DF01385B86F6F271F355FF1E
ED5A84D534446E834B5435D483DC20A729E81CEB96EDAEE53D2E431BD905046D
712133BB30F33DAF2FC62BDB3A171BAC8E33297C08360CF255050DDAD58DC96D
280AEE9F9B66D2D8806E2CD32F8A08434FE91B7451AC5948A1DAAFD2D28CCA24
8184E20D0F00EA9F2C663E7C4ECA2F9AF6EEA56F282AF32DBD960D40D4CF055F
F33D5C25602C2D6040BDAFBED1926120464F183124F48D34BB54A06A6724DCBD
DB2CD715999302DA068272B4E5742DD8D017E604C4114B1DB529A841F633160F
CFE80EA9B3B52B940AC0F685DA509ECA4B420A996E8488933EAA721B562450B6
554302451C9AD6A56A84B85EAC18F03535099C8363599D4397454E19C0AB2A34
9EE7A3C94165E396B9EFB97067315FC4762F2BB4EFD7FC635FFF0593528D9079
69A5556D34927059A46525E6445A881CFF4B5B790ECF680068973A47EB6849A0
52B9F18FB039050940EA4F9B51A3B9A099F33147569AE9254322ED47A6C7612C
46EA207F0A0FCB785E1DAEB571BB99C97D296CA1DE3838CAAD06A98FF8146056
ED014E14180D505B17AFAE35F58696C16D8C46F13290F1600075A363489C9D63
6CB4DB7FDCCF49E15B6825CBC4E04A2D6BA136289D198E2C851D794A9A3E8E45
7790862DDC9EC0D12DF50176A194F39C7C13C88150D2DD1208F386BBA3B0FC1A
77F94819F12D78D5C59139A1DE0F2DFB3A7FFEC4FC38067455003968A57F73B3
6C15268401F75B5C843D46EC956AA677A8DB075B61E547DEC35A63124769324D
BD64C1B1D38777BE93F60BF4D92C85CB8C9ED2C8A77EEE0A4EBFF3A44F237305
EC57E50E3120CFB0DF8D573A96A740E1260A26C3174AD869CF2EEB226ECD812C
480D45502C3A4BE2B4EF9A8EAC7DB836F0C843971067F690B653D9C722655066
D113AAFB04FBDC5BCEE0FF67A38C1808943882E4CE60A6969939BEFE16C09B59
CE50B529C3BE6377368C3E827E9441D96BB174BAAC8B518671E3A9B95D4F1722
A26F4FFF48348CEDACCC4FD98F71147D0B760B320705C1C13C9815E2CE82C5F9
D6CF04C81F1BCB9F12A188F9828498C220C6DF1738CA9F236B6D6A01D747BB6D
F322F38D0D60A2E07E0BF1E259214C3F3EF0A72074C261ED09B05DB3915D0835
B2BB52B6ECCB04E712B6BFE1A0DA7437DDD8C4C05CA45B1D5CA17EA99BCE6428
7E635AAB8F2BA639F28C52CD0800BC348990D0E3832B0303A272D6C99D8A6044
C5093A422D646898EF85ADB647544B2CE33DB5DC66717506CC90ACB01CF58830
D50F4CF7BACAFA2311819C3F50A9F91249C624EEE17EF5752C6AF77D6B852703
81F95A42593045A69334D6DC1280384CDFA0D8088D97332FDB06A02E5DE9F962
1B41C68A0139BC5F03FF841D8E93FAD2DC08E645F476034919C218693989244F
DBAFFDB4FC0436DA9D43C8A2D55CF8DDB0E7ACDF9D564BCBE38073E74D65C8AB
0E89D87275D680F0FBC2389D1AABA196474E26BB4BA01527A72E554C29EDD3FE
7B17BEF3AB22F2C7C0EFA69C708C36CDDA24C38A845EBA9E9A3E6052B54C188D
2743EF1487B6DF0E6E622A697BBE91D5627DB3F32A57C0AC98368FE53BD09844
A326B096D01FA3547FAF440D44E079EC0EFC2A482B05052B2D57DA79B8B811E6
DD9D0E46E838F1402F32EC5FB127DF771049F7B79BCF62C14E3FB4D6D7BBDB80
975272E6DEE0109857F51D57E304B74DE4AE99ECFCD0A40E57C5E51283D8F270
291665EE714A6596DBBB5285FDDC4B6328BA6745998EAEF40EE717C63AEF8A59
E87D8E3AC8161B6638FB5D0963F8795587949FFD6F58C5FD18741BA3483B7FD3
FC31F188B096FEC566BA23ABC2B34B79DC293909C9E8393AC9A26E6538672756
3FE2EEF3E04ABA6D344F2DF359AE718C7D0EB5CDA5AB3D09C62C990BD5BD7E73
3F1F8AF93ED0FF3222D7411CB9AD3C3AE9EDA04DD1AFD21A4653AE6A890E6C07
1607F1668E4B62730DA65DF88C3C63FD7816C32F26D21A87522C2097BB925D92
CBB694A7F77E91F3FAB14D0A493384DF902DE5D5F4FEAB5F5BDF567878AC8B4F
98FBFE8FD16D07A58E2211B87983D40D5CE6349A207FF195B7F09B914CB6D688
B103A5206380A90713D3C872EF8C026D2E302BEA473BAB705DE58D802A47C249
9C40EE6F20398E591A3878D4A9DE9F6EC097521DDB694503AA8FE3BBCF24A5FB
3DD6CCF1247B5D9724508C63A3E107DE56F0802CB083399BFC3A9DA62E7575E2
58AA589E85ABFF222717335997260A7F56965DE4DE551885BA8A1DAA5C97AC34
ECDB36FEBE3D8428A4681871FEF7CBF2B5DCFE747550D296B419140C39EB3AD9
D65B6146705DC3FEF0131533283A100D9DBCAEDB8A10CAE4C431136FD94089D7
64402322603B7049D4D10F97FD54D03D81B7B134293004BFB852D50DE5C6C5A8
29F3FC4855C34AE134EF939755B88270B114106573415FB185E395F6FB0A4698
B105964A9F374AF011972D67BBE0B3CDBBD0D9918A0E0D2653726C630FC8A63D
7C5BE82A965EDC1E0A57652688375FA60463EDEF222D4A6D726B768D8EA06584
BE7D23F6FE42CF8541F4BCAE1B01C73D6500207B211720DF98B72D016CC513FF
9109B59C4DBE5108CAE19687C1682A36F39AA8AD09C5AB7D69A13EB0BF2F50A4
0766AC191B105EE28BF0A87862C377E47EDAA69F99B7793F5F76114940848E50
CE05005B4E2C91103DB7BA7BCE79755E4324C0D0305EE203294CC82451EF3780
106156CC6C6BD07296CA7B927B869F8A9755CF9173F22D30EBD3217A98616E3C
8525AC8ACDB07F9311558AB53805673411836886A919BBB916416DC1C2061CF7
448ADED96B2933FD25C207BD374AB495DF564F25554274A3D2129CF7E6562F56
E3D7234B8660A536DF464418BD08E3DB7CC2A2A8B80A0CEA897505ED6367A460
3B6C0CE70E7C5F482C6B3FCFDD8C8266E023C421481CDBD041469219AFAFF611
97F1A2D6B13A90A76AF1FB2520D973DB1CA53BBB11A81115605A9ECEB0AA60CB
972E5FC2C431F1A5EB305D09C8B4C6D5CE1E397CE7FE9DA819F132192B2B91D1
2832F636D75DFC3A82143BDEE17461D536B13D21CDDC295EB617AFD850D59356
7172AD007B843AA74DB797099AB440C40BE561612B4506A8E26D1C4C5A8DD4D6
2B8DA07722FA903A6ADD179E0214071F1AA8A21022283E7380AF0B2656DAF629
50E8EB7C686EDCBAB6E56C5198041DEB47AE8BCDB4C30D318D2CF076491894E9
C9BBA0C6D9DC4B5962350AEF5B9DC1EFFB0C9B8F562660D677F376B2279089D0
294FD57B5ED589C1D28C6E9F02C821134A221334E1B4AFCD618FD86BAEBB31CC
28FF741E785DA99568AC909B091BDDEA56D6E3B75F4307E3A989C1BE6C92546C
F518EE6BFA37355BF3A752C26A014FFD48B98F7C1B11B625A43E677DD04B16B5
B1B5F666AA67EBD602583D810578ADF8FBCE669C3913DDFECB2F64745EFDF7DA
13E21B44417230EA477D2E13452EE0E048FFBC3B3F3E32687948361AE63B2F3A
C2393837699C356E580C995217D2BCADFDCCE3A6276B86DDA6DF06884B153369
327D3461E0493B6CDAC5102E62040437522DBA5DB6B6A4B30BE8AF1E9AD4DA47
AA79B1AC528F44184C40B9FC2E402F602FA679EFBF9F374BEE06E6332B112399
D18B8822C21B3B1DA3A84B31023D39508C1F0C97CFB05298E67DDF6EE891E261
67C5A17051C6DAEC3924E7E9FC00C98225CCDF01D885724122CBFD1354A59CC2
35EF7E987F633164341E2074B26689C6797F81618EC137BA7AE502904A211920
D7FA213A6F0BE82D49F7237690413AD381F5D2A3BB67D027C48455F48E717DCB
E1D0ED373D62E180BF0AE16B91605EBB768E97242CA8DB982AC0C2DCFD4B5EE8
95BDC8910A12F20439946D3CA70A5F67A62B82BEC253FF1C68B1DB9BE887923C
1B4F803DEDBC42CB12082ED81E92F657D30E8652E76C6D93B1C7196BB77C0DBD
C2DCB9E8734272157E4BD32B57FAD22278DF0B98DA7ACCE25626F453E8A7387E
F75FB71ABECBCE09E6D35C7CDCD550EC6907A8832D6831B8F16C6FF757E3733A
3D028A0456B64C686A35EFFED2BEC9A9A1D93E98745DD6036FD954AAC48ECCC5
470FE468CC4AEEEC6D6E650378E5561990EF37879B517DA5D550B5DABF216D27
26941BDBE7286F95F3DB4673BEA513C8AE8FAABD78ACF6AB6918308627EE223A
BFCD0B05C18134AB378AA07512D71E7AF987C925AD05686B6891EA8573FD13E2
790918687BD4DA3C12A9E0F33FCB6AA2BE3E3397B970E80338E5338F0F603B86
A42FA5A6285CDEF0739EBEB1B9133E86BAEE66E1AC48F83BECD4FA2CA3F1D5EE
8EA02DA4925191191A953FE68C13398E2D80796714C07FE16CAE171AC6BB0870
0AA402B06C310DC99F0A07669C57B5292530FB8DF265DB909A86B8D076468B4A
B24AA398EE42F29BB41E7A640883F9D6021F4CC7E949670DACA3233FFCBD64F6
AAE2DFBB7B1E69F24A6C0A8D86081B2B09270D561B20EAD4D6B1D40B7F333A0A
F1B2E915DA6709BA159E81455907510390AE7C870A4F38BC8DD19149558B9687
37B0777DC5D7964E3B50F4CEF6EF43F38BE9F01A68B60FBAC4BEE09E197C2554
C413B003ED8D8A095BEDCB291ACC0FB3AEC024D779BA9D69FD3D0F5D105F95E0
EA00C1483DC52F2A37BDD09F1F416BF99C1299784AA46D36515387FBD61C1C27
A2B6E55C6B086E87B32921BD7441F10E49DD10D7D82E81AED5FE4C5AC09F617B
9BEED75211D3FED854D9414ADC9B6AA0529863DD90FD48A3F82DF1F7C634D83A
261AB18F257A389AE958DC7315251E670296B0F415AB99D1FFB56AC1E7E61BBE
0DD2A5C6DCB7E270957BAC7584BFA9A6E21CFB293F0F51C58199D2EB431037D2
C44DB61F55B46B3F034CE7127628B7A3549AA2CA1FF18DD7AECFC4EE7B3AEC3D
D0A1EBF2F7E045BCF177FFEC6A32B8BD47EDF924EDE5FAE04FFAE9904F4229AA
DF5B82485C624F0B7319B147CAB299A6FC7EE302DB985DACE5B13F8FA8E73504
96E522B8D32869418AFE99B2EE70F52CCFE638419454432B9688E631272806CA
FDC72B2F2971931F3D32AEE7B8979EF969E122CFB6D7AE0C314C3CF64859DADA
99AF547DF83E7B74AC852752D25B6EE4A29B6CBA28CB35FDCE44C0CF816E1420
9456518D9DC7A31DDA813F7ECE178F6C80A53010BF2272F50E93F5EC18E91D6A
BA5DD888E1E9FBAB51276F78875DC0E6EBF759FD1C92A7D9E86D57B9632E5D3B
823FCB477610DEBF376FF0DAAF01A47E0CCBC52F0052C93C35EDAC9BD26C0CC6
5D62756F5476CD1BD7581567F55A6F04352AFB226DC7087F9D5B254E454126DA
1C12C7ECD608698A0B2E3595CAF63B8BB3C1DC9AC379FDB7F99F255C8AC29A46
AA322BD508021592969A16DCBA6959C5B92D0510AC400844405C810D6E34D41F
DC8867E6A9
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont 
%%BeginFont: CMBX10
%!PS-AdobeFont-1.1: CMBX10 1.00B
%%CreationDate: 1992 Feb 19 19:54:06
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.00B) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMBX10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Bold) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /CMBX10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /.notdef put
readonly def
/FontBBox{-301 -250 1164 946}readonly def
/UniqueID 5000768 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
2BDBF16FBC7512FAA308A093FE5F00F963068B8B731A88D7740B0DDAED1B3F82
7DB9DFB4372D3935C286E39EE7AC9FB6A9B5CE4D2FAE1BC0E55AE02BFC464378
77B9F65C23E3BAB41EFAE344DDC9AB1B3CCBC0618290D83DC756F9D5BEFECB18
2DB0E39997F264D408BD076F65A50E7E94C9C88D849AB2E92005CFA316ACCD91
FF524AAD7262B10351C50EBAD08FB4CD55D2E369F6E836C82C591606E1E5C73F
DE3FA3CAD272C67C6CBF43B66FE4B8677DAFEEA19288428D07FEB1F4001BAA68
7AAD6DDBE432714E799CFA49D8A1A128F32E8B280524BC8041F1E64ECE4053C4
9F0AEC699A75B827002E9F95826DB3F643338F858011008E338A899020962176
CF66A62E3AEF046D91C88C87DEB03CE6CCDF4FB651990F0E86D17409F121773D
6877DF0085DFB269A3C07AA6660419BD0F0EF3C53DA2318BA1860AB34E28BAC6
E82DDB1C43E5203AC9DF9277098F2E42C0F7BD03C6D90B629DE97730245B8E8E
8903B9225098079C55A37E4E59AE2A9E36B6349FA2C09BB1F5F4433E4EEFC75E
3F9830EB085E7E6FBE2666AC5A398C2DF228062ACF9FCA5656390A15837C4A99
EC3740D873CFEF2E248B44CA134693A782594DD0692B4DBF1F16C4CDECA692C4
0E44FDBEF704101118BC53575BF22731E7F7717934AD715AC33B5D3679B784C9
4046E6CD3C0AD80ED1F65626B14E33CFDA6EB2825DC444FA6209615BC08173FF
1805BDFCCA4B11F50D6BD483FD8639F9E8D0245B463D65A0F12C26C8A8EE2910
757696C3F13144D8EA5649816AAD61A949C3A723ABB585990593F20A35CD6B7E
0FA0AD8551CEE41F61924DC36A464A10A1B14C33FAFB04862E30C66C1BC55665
6D07D93B8C0D596E109EE2B1AAB479F7FAA35279ADB468A624BE26D527BFF5ED
E067598E1B8B78188FA4BCFB0B51692D07B0BEBB930C6F0997B437E2C51B876B
61A563A2673932C2045833FAA35DB22ADE12102335D5DC734AE3AC5EEE6658D7
92EB62131E1DFBA441F53EFF9021D9D4C491F26BE8F54C61165CAD778CE8695C
EEAF70E3B20C64D4C2B34A084B5770BAB2A974E898F62BFE90F132A37E2DCA4F
43E13DB13C94DFA8ECE2B7374827AE168634FA007F8981ADA046CED3448BF453
FCD9A4F194FA648F9FC0971734BB69CB73439CB0DD021D44A7C11BF295E81733
4DFBA460FF3D654F9FB337E99E6D66FBA87A817EB9CA1536C84833870E3626DA
55D48DE850D3E6F6B29DA0E7C9D681283586F208DB8D58042E3A7CE55BE84822
C98237911453E479EAB65AFEBA3F61A763B40E74535BE56C9D8D06DDF9441741
5C9D9D917439368736619717FAB4F06E2C329AE0BA411F3FD522D9C33AD8369B
D7DCC9DF993778482F35F965973DE876FA19E109AA198A00658AB3F0D8E3DDD1
08A573F2D525202AFC57E05D141E6C0BB811E1FE280EEA002B7A45BB363AD06C
318D320D2C81AA5DCC842CEF66E7DF7670588CB39C9F42EE7763A3A17372432A
173BDEF7ECCEA297CCDD76A835C36DCE9DB8F8CB66CC71B4920CF5BF055A5260
5B41A5373BA6E4F63C85671D979EA5EC30D22163E6D206168A3827F465279870
CA80E6632FCB86E990AD1C8A0331513E0B6F2A90442F6407FE14BDBFCA5C7EEE
FB670E1246212B4880BF7194756805D1553C4AFBEA59EB7DF0FD90AF07DE1610
FF9708305CFF6643FCD7DB1C5D43F9353EBB73317DC94CC58E94E3904326398D
16220F728A51D930A6D89064841BC9B7B2608B4382CE0255C8B1665245BD77E0
BFD234597B56B67EB528B6511D4C8F3B8D30312048BF6E2C98E66BA3E85EFCE6
F2B127CAF4EB03F7D998F736CC57D1443DD41EB00A3381CADD7262FA3D6C4863
17F71D7F04D2ABFD61663C8B1C2BDB3CAD8229FF26EDC6E54EB7A1C23223B6F7
8A7FAD967A2EA7DC46BDA172ECA0BE81C9A7FE054F1C0885A2DD7C0D5D34DD23
4690A8A36F3ED55F5D4F509E0B8D13574FC2C668017611D28EC176F2638E2D30
A983C620A98D633895E4E5C7A488F07EA1CBFD0874C856F4FDA49C6611BB8F5F
9EEC232E3F8884650A8402199CA6D22489595E1CC81B7834582F4BE4E7E404DD
89CE2A169BBA8D10874447F78EC2B94DBDDB11A0D25D70838C052E1928BE1EEC
C8AD2AB3D2F5804D626B1A43F7270575C6C0A42A7D9DB2AD1DA3D152DC2B8512
8BC797594131C8038C136969DFCE1315C53E710CC7E4C771F43ADA4ED0FE8C4E
B03A3CA3D46F77128C547495398CE828F7E14AB4467760685A26C39F4343ABD6
F84480D20B4FE56391F344E2181C9631F74711BBF3213E4AAE1615CFD1498245
49FC71AE1039E27E3A68D90F1D789A6B5EE6B075D4754A82A584DEA0A23AA5FE
CAC1193EDFE3E2C4B8173E97E5458C98D292B04A6D4373512E2072523E9772E3
6CA2F1C83F8F41970BC48AD997FC9FA94548E97BA8E2104BD09185E8194EF0D1
4BFDA071213C63F9E6981985273A5E1D91B95D1079CE6F754462DCD65C573860
365A4D2FD5E5C0FF6BB819C46845BA7CC58A0CE61AB85CF81EB40EC7998F4405
92E519D9C6424F841B4A3D78991EA8FF1E903BDD959EAAA11CB03DF11BCE469F
621C596C9251F4731155429E7F9C8C9862FBDD7E982CC4996836EB36CCA89F98
0915F107F74E23703069E38146C9CC3E404A9341F0101308BF9F0672B7B9AF1C
E302B06AC371764B91C18C7084D0023306951AA76640C52E278ACE328A40BA1E
9B2BECB99D087912686E41532ED115311BEDED6F24AB72F91205CFA99F6EFB02
C0B462705013486A036C465F6A8E4449E886FE04F293A150739FF312D62CCC27
1F2E1E8382D72788525F89B4C2B7A9ED8C830EDCEA6163DF37D7367D8BE087EE
8BFBF042D98C7D30023753C368CA6BC2E17949BCA39B596F7C7C3368803CD9E5
2889BDF0168D85EE0B100F594A7F3D7F04D164E86B5EF06F65BCF671ED4B75BE
EF68E0D1D421B1DD7BCB0208501545D3C4966222762A6EAC7430A1476850E702
C02B90A4B8A3F0FD2EC1BD89EF8700291D9BDDADED45E1CE9EB1F6F1C01988F3
25FA1CF9CCEA624EAC140F14E5CCCA45BC64B8833A7BC0C630F70B2180EA15F2
8D3494E9E487FCDD3401694C82E44E224D64DFC87EBE6755F271273F4743D1BD
1C933EF51EA52CAD6FA0E1D6AF817007B7ECDABC27FB22432B8BFB8BF4D23CE0
FD2DE8DE421CC0BA0E2BCDD96D69760787D693E6E25C132B1BB0D9EF2C16416F
CECAD084C303C2D73F47E1BDD0A88C8FC3592D24A9DC90BEC49785FE95A31307
2C876B3485EB800FDA5BD985764C057DFF2B7333081F515D26F83CB71677D485
03295F979F59DBA0383463B07CE975151887065A65671A6BFFBD427E01E66929
E33CEE5B84A19155BACF17F060E383DC39E0F3905C849E1A452711D455CB2810
FF05EAFE5E0E8AE156C8170CC33F513B5920D2E0ABB13EFDCB1A17B5FF32771D
BB03FEEF3F7C7B75CC8084688F8F926AA89D8A88990803C81135D87816678734
64592AF928CC99F8250897ED676F61A78ECDAC19531DB1CAEC65B1716AE6DE48
DCC915CA32D29AAAC68DBFE89DA7306660F39B1B7209343F1A307AB7B520E781
5A36C345A1341ECEBFE9ED32325353183C977735B96944D175C6BD206C2E1890
6798FCAF755E9524AE4427222C79D78F15251F89A8421FE2D0E6AFC8ADBDE7EC
9E92A24E7BC381E3EDEFE4CF98D2E43C068BF084B55F21A92EB0226772492561
841603609E14128A7714B97974D1072E8C320A1A2760DA32C9EE87B34D732E85
31E34A70C24232B38837CF9568B9F4701EDA3B01D49AB9285F4BA6BC3DC77A01
72AE72D97F768414C1F7C006E7F066C195603D1E44AF4092DB346EFB286D7032
CEE39715281113243B685A704CC33BED105FC5D94D7BB69AB8ABAAF1952E955B
348B431F4A1BBDB716E74AFB455CAC286D073E95B6AC9A04518A77B5D79B057B
7848A4FEA014E6450ED68F0B04FDA807AF2334E596D2537581C561471A6E99F1
068CEE1EF37270D6365C43B99DE8D3720EDF6C2810516161A0F6AC8CF1D1A567
4E15295CF40BB79BD7A7FDC91ED16DA58F539CC15969B83869867660FD81E4CE
47D8668E0D341C755BF8C3AD218333A1586C82B3E6531BFDB877F058907EBC98
E8584DD697AE6A8484846BA1B1C2C3E51C99EE8A3CE33AC348F607AEDDA294F9
298040CD28992A629FA5024CE5BAEA8736EB273E9748C700762460A51E323136
8FDC708A83392668AE2E4CA2CB41E09FC94E0BA912B5966094E4B0E7B8E2BF15
09F340B02AA9067A166087872659E380540B6F36E05CF2CA15B2420C99A5D397
DF1941C69740A7B0539D53770A83CE2109A94D1823E5BAFC25E946E0FC4E39DE
E783D4783FF0C698E20D297792616BA0578DDA80B4E1B857300AB755EDF4DEAD
612BD52A16C03446F66F152BF1E5222F4D2434C41221E7B7B7A9B07F711C06FD
74AA0910D8D91DC113786A1AE033397C8432147E80A9B041BC62ABCC0D5EDB4F
EA9625EEE584F0AE269AEC4945633CAE0B885EC67AFEE74EC403A299EED78FE8
4D15DC6923525237D17AFF6516C640E22B06628AA91092B02353D53FA6E275D4
95905DC84A7C13F8C516AB15CA41ECFCDA645A7882D13824F79F4297BC15A4FF
664E4397A22D93E1862097BC1F4C07C0D43C8DD893441C2982C0889F69150F34
AF2933A504730A499036843AB4CEB9B0894574398EF69FABA08883F6F3243BA6
6247581E3F04ACA2DAC7ACB028108D45FB8501808DE3B6AA0C8378D73DF71C62
4D7826E877A3D82E65575289C20824CF9ED590CA5406611F133D7A874558B769
5873AC6FD3CC6FC5E6072F7B1CBDF82792B8DCDFC1B3D966590D9923CFAE7D57
DAF80CE1EA00B688FA2BC1987ED4B934544BDE31066F47056BDF3C0E2E695CE9
6B8F1533129D9E992F39943164D40F96B1A4BE270B4BD06A0AF18AB06AD2E08B
C3AFC9FA45967805D64D1BBAE27699D416B11CC397936AACE945745030BBF347
571AB0EE73E16E3B1AEE972BB78626C46ADE4F5CD37DA1F63D8205540F51D7D0
98611309680BF94446E02DB3A868C017DCD1DFDE403B010F3AE8C53897010A42
906AE49384B8366FE7CBBFF518F9D40D3B4D1EA82326D7DB043C31B2D0978B94
2C761DB0CB18F8A40D509879ED978225670151A13F20E58D6B012EF6CFDE2B2D
1F08C18D7DC6F65D2D83923EDC8D9B1E31F2EDEB97D53E96E6F65663295D13F6
9D9BE956FC15B4CE9B2EFCC0311D3BD14D285726C8A80895C494C6480632CE87
2DE645A927679DB2C280F3158595522236A0A522245A1C944A5317A4BBE02839
8F65032BBC43DAA72DE86BF1942795B3ABC983B5E1E1397711B16908E5862DAC
7C61DA6E0D7CC5CD767D4693888E776CB348A9D87044AAFF357B6F163E9A9E1F
8D6D25279BB2C51C6AA95731A8673B61713B4DC5879E1836A9CACC19E505CC7C
7AA85E213EA818797EF4809AB88A5A2BBBB5308243762E0827EE99AA7042AADC
C1FE016DFDBC7E4119E86C1E483462B64103E1D36ADC3D3F1E582BEEF8C23969
42841FED9B07843B212E107C1452F43B58CA692F401317934936A6682F07CB3C
4557DDC235BF9A059A8A4CDEBA7F10247B54F05954D27E3A17D25FAC1AA2B9E4
8F7482D9D106A085FD5D6A97E8C560FD117633A8DEA8081B3031C1266BB70C82
3867AC28DA5ED09A2E4A648041A365C627D67B5B7C0A610EC667C1D21F9F159C
2468415557362C29D73A7D3CF31FF8DA109A6FF0848EB107071166B7E4E319D6
DB594DE26F88B07C8521E2287E42AD6C21E03DDFBBDF7ABF3DD4EB3E31949930
10A04E775335D024AA379DB1200C4D33CE1B3C72564DE61E942C70E3F08DEE23
03E89F5E2A8B4BCB149A1C5EBBCA5388A7BF024FC09CFA85F66B286F1EE5EC40
181FE941CFEAA4FF7B18EDECFE816C7606D70DD984844AE6D188B2D39BAD1A2B
9507FB8D7B91272C162237A36A9E65DE3C39CBA6F7F289E94FF3BB42CF698839
72CF106857B6AD452816E546F168BBEF87C361B1F220A327EB189FEA678C6032
C1AB58027ECB8C165B44F9F6374036C889D8DB171BC2B30F17EE4DD3B7BCCDC7
8CE32AAE9631628F80BD457CF7C2963C3F61387F439383C6D225847965245CF3
44FAB953B337132BECDB9D7A48B9FFC79E211B85E22F10C9BFBA9251EB1B6E40
08644EBC9C463FC3A2798D8305EC9036F85590923336FAA8C9FB5667FA6E1B71
EB9619DB844FE702911B38D66529C52FCB37FC9FFAC7080A6B1AB779371FD382
92F21834C05B9CD5B9FE2D80133B758B343DAFD5065BAD526E0F5705FFDFF393
FC39170C87004D4392BBF48FA9F8C9BBF3D097FFB823DFEA067C374C4BCC5FC5
C075AA61B0F501CA40262E1283FEAB72A818E36056B17F01227EAD013FE99A87
46BF17552786DF242FC0E61D2538536549A26721E50920A03442D6A359A77F76
B6F135F50FCF9EB26F4A2987E70DD0A91CAD885A0AF5FBDB109D8E1766F2A83E
3ACA0E037C3F0640CAFC2F661CDBC8580F5182C1337278A5DE6F690FCC13BD99
D5F2250FEFEB2B9CACF22BB7E791F36C8537CA5C614045BD193EDA547234D4C1
CB9DC9BEB573655AD05B6556361B4A505037B1D05CD01F1BED47D76F7BC3287B
9765A0326B2582C8272EABC95B032080BCC7470399BBC5F4CC3626C74D4F870C
5006A95459EF6B0D0FC11776EDA5EFBB4B4003929BA204146EAE2153571F374F
306AD408AB8A0BCD2BDC422B04957FA291746CADF4A7748C18681542B29497F2
5384DCD8994670E92BADA3409B424144ECA18BFB8B320AB0AE55832AB84AB985
91AC80EDF356B70DA8C632DAD989FF863D121657791D36F986BD7648E15B316C
95588FB2F459E1DC5BFD75EAB752D519DE326F4D8A4D7ABF0A8164FB5348607B
C45F6EA5A8FD51207F511A043B4B1CA9B96114CAC72900EC0B377A7BE35FD216
CDB3A94C83B36C42FAD3D31BF3CA8D58E50691B94D1B5327D5532ABF53AF5F6C
41D02C157CCF5826E2D85EDF28354A06479A6AE5E0624DE55D0F353D1EC3DC65
41981701D0C68F14C056C69328ECF8C44D550CBF7F8CC17BD9329ACEC30A8A8B
85F43CD44DA6803F2A8A618F87D7AB3C4D2770DB2EC6C078FCEFC03710165405
0AAA897A18E7398A407B93CD6A373FBFAF2C51069BAB56F933888A76C82212B9
BED6253D289E0030359587DE4D691CA81CEDB1E206DA3A6243320988B3D134A5
D7E85B9E7C91288A7291636F8157C7537B01B5E34938788485952AFBACCDB9CA
80DE227FE32B12A23CBE99B7DC209804C73B175D8EF88C62BE9A88CFF534B973
082EC75B98E8F717794D527D5BCCB3F084BB63DAAD30D2AFAF74A400E47FB164
4BE3C40B19C0F90E501657B3D52582D5CDA8E61FDD9B7BCC1F369967F60CEDF4
32E9D76F6D608B2C63F21A84693845A36BEB54E65569763E4715BE031A449F71
F311FE125FBEC5DFFACDACEDE5B691662E168B10D97085EE4290160DFC12FC07
5ABA8718FD04A2FD27DCC8634C02F337904F1263CA8DD6C750ABC6CC55ECA033
D51D8CBFC10BA17352A36C10316040208A68AF79C69AF8FDACC78CA440B85DAB
1B609CD30FA114D5FC701B6129DE5BDB035B78FCE941F3CC5EDA57D09426FDDB
7B4A07BFBA84FD54E3F3F06BDBF942A936B4A8C4D673F23444D4D44BC32AFA13
A7EBBAAEF750AA779E8A604881D88B68146135B542512C1C9562F4F77DB4F451
730C3CBF016805F886E0584589115336C3BC1569558A058B0032478771513760
C0B72037702EB89E55EBD14FF1B3F7EEFEA8636D9C91C77D48CB6790F3586795
FDC0FDBB75E2E7A6EB69859C85A10B43F8B8246742EE5B233384925FD058F6BE
2A866F62E040C9426E90A1C2CEF1F47C2397985B42B43F1A0EF2912E5C7BDBD4
4950EED8545C5BD7242FE37CCAF1436220723B7583107A021682E5A9417B1988
BC9014CEABC3532D466A7AD314B905E8966C1B9A41925884422179B3F6A4661B
77964981593F0B04BDDB511D0DDF81CF62A315937EB1A4F4FE41D99316652A4A
F3954E172DAB2BF11B15DA9748AE22D9E66BB1730BD641332FB39C1FDFD29456
AE3DCAB63F74C602269992BA57782CF01BF5BC139016452477CE057E9AD7AA53
0C7C2DC0D863B415FC68ED69B7AEE7E3C75EB19DD53D2B31350DDEAD614233B6
189D182B61074E5673820B30F548CCD76B5109B7DC2B7DDCC947732C6CD1949A
7932212606D23220CFA54428BFDB45D2A00A3221BC6DE48A561526D1AEC58186
F80D5B7A9B8B9D29DDDCDC1286EF487A92EB7641E1C0F30B92BF13667D09D86A
9BCD8E804293F66E18B5511E15989FA8F187BF4421001F26A163A14002C413D4
078B482604DFB98EFAA3D4CB0674C2F8EC5D8AE4BEF737C177DFE30E168407C7
D2E8DFA35EC68ED4A93A279AEFD35A32C8B8435A0AB092502A6A94812E148950
7CF40E048CD211F0FAAEAB6067D6A615A1BC8B6E3F77798DAC88AE0B88343F9E
8B78478771FB572C90AAD895F97277CF57476BF469E1BFE62E455080C85CADFD
662E772CD30D53078BB39A0C1FADF5DE82C90AEFB02685FCC07E3FFA181F0989
169E91D7C2D5F5E7FC660ABB69BD3A76525888DED5FCF505D60809A24C7C7A9F
E3C86ACE5BE09E5D6C8351B46E803C7A21C1FC7F73778F6D38F8C6440B8E5C8E
C992FCA996DA4A947897C279D7FA16F2F00665FE2E44CA7C5BDE7B3FD450AEB1
23E5D2E2133C8914716142FE5F64156CAE11CF9897429F5FD2EF76554D147387
A49E6736AF6DA274475FBDA9D9F8737CB27AD73E766AEEF598BDEB3FA737AE20
53B561D30BFAD7DA0B5391AAB91F7A7CD12B281D4AFC765F946BF8D569F34E57
73FCB0789EBB8EECC1B42309E651A262E46E36BBC6DBF4D9622130BDB21DD511
2F0432F7BB5F7C6F45BD287567C8A053B9D970CFB07D33529C5671F4CF5A1BE5
71CC0AB0EDDD6CBF6F4B999DBC1976E373FB4EC9C427F4351D7A184E660BDE6E
6FE236599672F7BF843AFE22E4AE3396E752E20E8933F940048488F0C17E269F
30A2B6DD50ECB0ED3C6E6AACD1FE40630E4CF28B7E3C3908D89A2CE3A6B5170D
D07DBC078A257BD7F36AB3C2BC07D3D719E25CF86F9C546EC00A1A987DE5BF76
F183A0D8DF91B010780BF64EE93B2A780584EB88F68A87C839695CFAEDDB72D2
C618311D4C82CB426D8DA0CF53F9609781DEA38CE7B506EB6DB4A46176538660
996CCD981EBACB873D46BE4F8C478C3F25C131DEBBFBC49C3904E87ECD380038
A25BFAC8DA4836179BDB906DD830A2DA7BB1F208AAA4D8A230DE1D2AFC2046D0
8160F4A48CF876802E2B1ADFD789137B18F1EF40377982C6705F7CF4BCB1573F
187C1A8AFE03680A5BEF3D34845C13E7374CD1092C5BEBE3D4072A953174BEB5
CD9DCA323F364BD0C626D662468F9B6A55C31BB9017B05271E5891AA681988F6
5D496B3BD0D35F5C59A90A8605202E86675F0A7D0586F2B6B25035A6766D736E
51F65B01A84572852B246FBC52D3F74E78B39D5DF2B642C8CE27B7C4C03877AC
DA412EF4A7BA17D5C3B2F441D179F95010BB2A52D7C599697C2C417FCB9BC8AC
0770D9275F1E1360F7A41DA416ACFCBF4496E773673E23F2B4FBB5F24A67537D
78C67FB6A434298C045E157137910ABFA7E87A18E45C81E90F67C835C2C83724
637254473072EB6172618021BA38A4ABCE2F4D1D704D97A51B23CB05DEFA815B
10A68C56E15847B832825C309AC953ACFED736C92817AA19B2B140C4FEDB4A4D
58CA39FED5B2A28656DFF7A79874494F6313E189A4439CB9DD664E8AE21D6434
F4F5DB5CFAAC78AB942B5CFAF3204DD62C3126527DF11877A6E2D6BB0C5A6F1F
CF89B897EE6F82D6DCF0A9A4F86FCBA03BF650398197DE7F2861852D7C1D574D
C877466DA4B4018B8D9C8C3F733607DF454C48B6DC38E4841B6D916F84DAB5A9
BC40E3EA035003195011D4E44D9BA04466580A9D93BECBAD378BD7BBB207D5CB
E26010D8BC49532143357ECDEDF491BC8409BD91F789A1D2F5835C0D76969874
8E2E13DC90F8A3007E6AFCD43F88FEFE46765EA4F5F8009CAD983FC1E0735F61
F86B7BCCB244AC4F6E52B79C1F18E47E229F5191C3413B7BDE0658CD1A6ED1B3
9068A90D73692038ECA5CCE8C8F332DA3BD3C1E3F1289B31E7DC615689DD842D
95DA414FD7C68B6FD0DB1FCAACF0C225DC5232DE2AC6179442E5C51F727D1B70
29565245DD4A62136798173A12A7095177FE094FF72558D091533D1024FE91D1
B2EFCC2955810F7F900F580F2438916DC3B84EB787E495FD193662F24B603218
B8377E05450698C0D36502CCC5DA7EC670B10E4ECF6CFF53D8868F68170AA53A
4207D188E01255251B750E24517BE95CB80FA6877A0AB993581167C5C147BEED
A57B7EA6BDF41EF5FCD83CCC77C4B640926F8F34605D007AA5F8C05BFA41B385
7D616C1421A80BF322071167A327D024E35FD664BD14E3E768944E1CFF162B38
1A31DD1BDC5592131D6CEED0C2C8375471D05D154778651499DE75142128E53F
6CBA7C38FDEAB441E43EC1B94EB77DF9551D47E0507E87BC90EC4B6B00054D00
7B5FA087B8AE3EF1C1C19420F45A3037D9DC2FCE467B14B211FCFC8EB9154A5A
6CAFC20B914C7BD2237FA139832797E5686269D44B4F383BF4F6792DE381A87F
E27830860961C63D8518A09063DFB040682B24481F31B17ED97DE83CFC791A41
F8DA01A06339EE552CA257552364BC6A5FAE7E51BC73EBFD4E91657BBFFB2635
C557B3CDB8B5794423D76F74DBB51B2CC09B2DA864B54BF1B9C626DF610B0CF2
29069BCC5CEAB98989CCF9A6EA01C395D87E544975744B544715D19B90E4183F
D541F902BCF663C227647091A49C485324BFFF4A070016D05D6DD48E59EADAEE
751F62184B479A8A13B5CDADF3BC6BE22B4BE8240CEEF9970FE881C0CBE3E6F9
7D9C29A5BE990437676FF1FD340C1E5F173C62E20EF1492B5AD75BDC097EBDF8
889A28DAE9555943A6B3004A04E301DDB05A7541378B3E83068A5C249BE5DF4E
BD425520B1CE595DBC9D55B22BC0CA25A85724D366A0AEEB86E014EEB66A8452
64CF15A32D39A3B98C392281A582CD5AE463F0B15F91B799C0FF1FF784394EA7
B65D0A5E6FC69E6C0D83814727C914F0092B3B26B11BF00C367DB66D301D87EE
6E22C8BF79C4EDA18AD88558DA52629C562010D634E083056ED6A58D84F390D0
EA681F9BB8BF7BD19827B166C27D86EF4AAA7AF8098F3833C3094365FC8A2997
6F63E60D7F0A0AB2208F50888BCEFE49CBCC5BF5E64C9FCCAA4D2E5A7893D7C9
2B9102BF23F2B7E4F837DD5501540D8417C3C0BD679A55F1FF36FF283F4E26D3
A510050E09B7C34DDF2B7E06982AEE8F84C744AE59C0075D8601B1D4D4B437C5
7B9225C6319EEC6DAF4BE64440C721E5FE04E2BFC28222CE90801E471E5F86DB
839730A36E6BF3721D41AD4591FB00338A05B1A8068626525DD2BE48CE288F80
00B73281CA323D74A8E6FBDE50CAB61903E56F77BF23ABB4287B456151FF5016
F0184C3332395F44F0254BE838B876E448FEDEBAC20D3801EA43F962AF60DFDF
40F17A1DD2310869639E4D4A809EA257E7C223D97A03DAFCE36A88B7CBECC8E4
4FD769CE67E93C84434B3B6F088D3C695A0410084B8D7E33AA36D3FD1FFAAB23
E74DA35B392FF0DC24B476BBC80BB9050D049783A83B4A05B7A9405193FC554F
9092BD86433C69FC059ED1E43BA44C416346D0F6DB02CC967CC310685C89C5A1
11119904938A304052C27A0C9EE188AA74AF1E970516AE980F517728AE1C6ED1
E61B49F0AF0F949CAB358C6C2634D11C79D4E6B34985F2DF51657B87C4640F06
3C840FE403FCDDF493E3FD6220ABD5C09C7C7DE1B9F8944054CF68ABC3B2A500
6F0EA7549FF48FE562684655B17C211BA268E92B8A6130C761C2A7DC6B36FAB1
3D07594F302D03F64A89ABC4CEBB9BA063C508D00C5576826EE8E1D4CB5AC39D
6394BDFDB2D5539C795ABF6A6A2B6D79BA973203D6DCFA0856EC67162AB10114
6A36284E834F00A7727676D6CB1EB7F61EA7E59C9C7BA796D8662F637E3B7EC3
24A24E3F5ADB6CD15757913484E9A911EE7173D9F6F50583A0B10D76DC0C8F2B
0B7E9E893E21CCDFB8B3D4EFB4A1B4DA37CAC23923E59B57860155B918CF4714
395F58DA425E70E7873733E0FA853595A6B9BB97E7990D6B4F6A00DF889BE1DC
1C898B85A25F1BFC2780D35231745EC02D01B08C915651520D69246B9E410A4F
B6E565F7C219C32F710E7BF4BEB7943A434E100E481FAD1EE0215AD50F85AC40
F27B19EE76AF27F8270A5C19CFFB961C288EEB8FB0215E0AF773620278345DF7
AF9C54C69B016008ED52FC327EA908519F22FF0B08A1E8C2030F382DB6BBC458
7BC6C1574427C197C571EDE90693B98848EAE1BB6120F455DAE2740E278A8E0E
13536F1DB524DD59F4BDFCDB6E0CD8D8122713FD4E14A6DBCE0697FD2658BA19
C61B7F7C1911BA4048FD9C5712D63660912D26CAFC1D1CDCCB02395B2C59880B
79FDE97EA24F59EC9184D101E3ABDD4249A8C1BAA69120A3ACAA7BF3F62A44F6
9F952797C1804B0E028C6B8284820BDF1F5DB12D844AEB302B097D1E8B041E6A
053C2F6CBF3052CD2D23BB55A2E004E04A55E20C76B07841C24421C237E320A7
7A1E7E927D28C7112A37F470E2041DEACE8D67FD13E50419AC7265AC06EF4B10
1CF64B78AC8397B9D4ADCFE94ED836DF41113F3A7E04FED8353A25B3C83206C2
19609A9A3F45DD6A3959921C7EF22695925D3093B5B8A7D8B0BC409DBD26C563
58725DEFEE1BA63B849DA8D64C573D88F1A18B087E506FE8A86BA47EEBFB1F8B
5A37C73A264258BCAEFACFECC344DCB24643AA32019F8BC33601D51EEFF8C229
E45EF5C14F934FFA97746EC47F20D95DC4BB8C2FDE4E06C98999B193269324C5
3516084F637B19CC9CA90B757FE5D2F22094B328DDAC4F6A8DCB5744F75AEBBB
D4A99F6864849E13D6A58ED5692700E1B092ABAB78F3D1EC1116D8F98D8CF705
34DDDB6B2A557B4B473D6F5FD8560F9A061595D5491B1231C6CB95FAD746576A
B7A4189E343C1BAD934291F404BDEE718F5E12C0821814945E34612A0BA9535C
EC9CC6659E975644A47F0E14985B8F7FD33C7E0C285522F1234D038FFAA544A0
68A4FDC322BB0E85A8CC04749EAB7A97F2A73ACA10FCCABC0EB86BEAF3A9932E
32012FF537AD509D9EB945F3436B6D6BC6EC3F051E3EEF9EFA66B65C7F2FD0D4
A77426829F624DE708A785ABFD9DAF2A18B52E9E75868CD148B94386A3490818
F3DA9C5F495146BC52D7A29050B34A45D93105973A8C240EF8780BAE2B2B0B49
8DE9E4A705041BF9C00B22908E148AD74F0005C628B11721E51436E2BA411BD0
48B0974754D9A21A9120982D22E98B94E98DEC8CC6E23C9CF06AAD506316355F
9DD4E26180B9857E57B21B649F7CCFC5246931481790C4E756227DD4C5078982
55DD1BDFA86461DF6CAAA2683AA352187BFE497DBDEFE0D5CC177BA593704500
DF9A9743FC18C57EF6B4DB44BAF273F248D46E3A3EC12F9726DF34BEB4E8A1AB
C54B8D5C3926A307466B310941DD137B3DFC87475832AC1E09463B8414A04DF7
FF5681D1822F9528A33C016440AD0EC205659CCFE68827ECFBD108ED6F933324
576C349C2B37C8AE527C8DE314F762D388BD454639EAA8BA73A1BFEBF466B952
A419058C09569B6070EE9BC7BB4D572810AC922BAAA7BE3EF77DB266EE36E3C2
28BC7387AAD4BBAD69F38A6FCB76B4C606D27FB813E9E81470174BBDF9F33A5E
F4EE7788CDA11933AE3750BFC11086BEDD202B920136C8AACBF57766AEAF5429
E9953A82D018B9D33F2397FB72E152B2B54A975B1AB62F7BA46A2049D6295529
C7D678143FDA99A40374389AC30E68AA1E058A34CD1380A01A38A6E7F1C23128
F4C2EFF4EEC2A37AF3D9C069A9734D7B15A32F42AF336C4B363E162381BE014C
042E6F19001BF5D21F3C0721FD3E92039075CC87FF3EBF1D4CFAE7FF54D1178C
39C5D8EFD405E80E6070D1BBB212420547345583542A857D5E20B3D354590680
91BF39060B74126E8B520B0A4BAB52B06DECFC35DEF9A6628CB5936FF32D4D12
63C56F18C3E9A769E4298A9D61716B1EB2593232A6AFE5C2AB28363CF4FCD177
E2BCCD28F3551DC015ECBE8E88E91861894C05965B388CF729141C40CD27721F
5F2E2BCE2F442B7DA7F621813D4668E37BC6CFEC10BBAF910356ADEDA4AE1B50
554FE7CDE821090278FEB07A0CD6155B782E67020838AC045BCC4128F6730469
EC92538A1DE2B5F14153C93C0CBCE85B879CB0644508D0F44A56C3DEF5FA74DE
2D7A1C4E4E55CFD3DA5E8E669DDD9E94813DC2A86AE9E0DA40EC1F4619F61EDC
4228C374DB5E1CC2EF3E23FBD9E603CBAF6AFD86D53D0452E5FE359D0C18A164
40C85B45FE3AABBAB762B19C07AFC6A05C7D0927CE66AC0263AB7B2A5AE09299
89597293607E855CA0D56A7C81188ED9FB23AEECA0E58DE5FA8BFBC803EC2136
3CD28B1A1C96FDB1BB0D8A1FD9C2F7175BC8EBCD7725F950301F2E5EAFC0F8EC
0E8049DBCC86ACE693CA4529E4A58082AC26A59FE23B830A4FB57B19A1F84063
138FB92D2BABDDB3F44DBA6D51FDC53714221C1438052AB3690E6BAAD87FB07B
31E9038CEFAB58E0D4B75C97C183FD14EE9270F234D3A64B0D5DB86D7CA4A9EE
C7B325312DA14D52EC9B8FB5DC656264F9F742231971C0F3CB0ECCDA60A9717E
393D7A2894A8402E9FE5A5F1DA57BE96D1D5BBD925AA34C9CB99DAC5BF17A852
B0878A2459794532C264A1A6343F006B5C0544C64019F5DEC9ECB36140D20ED5
0A3CBB9E49FE57CF4BCAAA0F6A27E0860F84242C30AE40043AB3E0D5B10111E2
4CF9A3B541BF4984EC84597260525C0FD8F26D165F367A6EEBB612EF529B3530
F2A4A5F02251EC47B8080045AF95F32849727CF88AC1AB5437002BA8A6EEA180
8E9250D92A327281364E95C4A96EC3765DF99D1322DECD89B717579E9BB91FB7
4F070CBA806DBC74A96CE1A7E9F5B75305A38EE812FEBAEDBB7D7B75140C104A
C2DC80BE4D33414A71BDC436AFCC1575DADE38BD695AAE67B2B0BC6B365EEFE8
96BA016A5186F655084055FC6C81CA27601A85BEB382542BDDD00101F0B98D80
23C3229E91202E5E3AA18E212A0383373DFD0B0E51F31021B127F3C5573DF04D
466A52387E16098C5F147CF7E7AEFE3A9336681A1A3A17D39F907DAB85C90AC3
647B01475464C3B8E8414050488BE6C799AC69BF9EF3C9EEEB5A2C3DD070048E
51590BE4AA2B1EBDA669310FF576F9C03F0B30A9DE794D6813925CD83882A5BA
53489C03BD73AC42917305EEC247BB46391AD0470FA06638E7FAC054AEA1F7CC
927411B7EED1468CA7ACD3F0861B9998864AF93908D97F32BA7B311A4983CEC5
C238D2C6C4C082
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont 
%%BeginFont: CMTI10
%!PS-AdobeFont-1.1: CMTI10 1.00B
%%CreationDate: 1992 Feb 19 19:56:16
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.00B) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMTI10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle -14.04 def
/isFixedPitch false def
end readonly def
/FontName /CMTI10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /.notdef put
readonly def
/FontBBox{-163 -250 1146 969}readonly def
/UniqueID 5000828 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958
9E3948FFB0B4E70F212EC976D65099D84E0D37A7A771C3101D6AD26A0513378F
21EC3643079EECE0C9AB54B4772E5DCA82D0D4ACC7F42FB493AA04A3BF4A1BD6
06ECE186315DBE9CFDCB1A0303E8D3E83027CD3AFA8F0BD466A8E8CA0E7164CF
55B332FAD43482748DD4A1CB3F40CB1F5E67192B8216A0D8FE30F9F05BF016F5
B5CC130A4B0796EE065495422FBA55BEE9BFD99D04464D987AC4D237C208FA86
0B112E55CE7B3782A34BC22E3DE31755D9AFF19E490C8E43B85E17ECE87FA8B9
1485831624D24F37C39BF9972D74E6EC4784727AC00B9C4A3AD3DA1C22BD6961
7E0ADAF55422F22ACA5E4DCD4DF9FCD187A566B7FB661D0530454D0DD6C6C50A
7A3875C6CBF8EC7769F32A1F3F7FC1C072BADEC97794D4E90E0035282A170402
356E5A9CD9ABD80AC4342A5283E458A7269252F4541CBB6452B39ED54D336D0B
19928E9CD1AB26AD83EB209E2EC75011A2643813053B5DBB0246097C4821B5F2
C92554E9140BE35B2DBFCD98809A8EC9FC910FDE9E0D86457C70ACB056EBF90F
244DC0A5BBD455E15D6E3180311D52CF50B0BF7D0A7F64F3A1821E0AEDBC2E7B
AEB549FE1D51088C153799C6E089B5D5D65E1C4E2D2B430CDF1FFA23CCB25D95
5C4DD885310A706B320AB25C8D742C6F29953254FA54DAAEE60ED477877D19BC
D28E9AB576B0EA088171FD000B60D73B3C57F754BC07EBC9BF751B7D2B32459D
993861B7C4B0D98C422A11BECEF76F4EFC0ECAEE89723E6CED53E3678D733363
2DF068AEF0FE7DFB57393BDAA439A6A4C396F86032A98009EAE1247B7DE83B3B
E46DF2898598FF5E6CA6953127432A967E4FD41CDD60D6E413059A58FA556EF3
309178B57C16A763CFC9BEEC276944BDEA255789EF4E1ECDE1EA43EEDB955513
F42EDDCF39AE522A1DC2D80B2772B05DA60F3DC15A815A6BAFEDC399C7956E75
3851CB3588E22936FBFB63A58300298B11C45D82385C083D07AF133BB1BC941A
FDD9F34D5E0B8087EF2A58C54D8AB7580EE3ED58AEB83B72CB9028F472AA0C3D
5C0DD07F3D20112C51366AF49C461175B32F43B33E558E7595CDB39F19A8B2D0
FDA3CC3A8318A933B24E8018569F67C865E244FB22B99E4297887C58064CBF0D
E227EEC7FBF983837F8F2FE36F2884ED0B533D8876164C232B3D525ADDA739A7
5B1D67800F4376A744863FBDCDA1336CF7EA180D89D2E804B585B56F33A7122B
F3E18BDDA908C412D1709C26F9D8A553B748A11130DF793931F09376246D3EDB
B48CF44CEE72B226A5DE61A7C773AAB8FFB6331CA20A93FEF377E4FC5F05CB7F
2A5AD6B00B2E77ACCA133EC8836CA75045DB9B7E0A5CDEE3D629286E320BE4C2
EA3546E98551410A9F5E76D6C914592E830E02744136E585FB7966B054BBBD7F
6E2E2B31E9000628D6E1388FAFB1BABE9909CF3D445B6D0A9397D34FFB85533E
40E3B905D2A23DF8AF609277935224DE3896DD03570D5943A166E2E55E3C0A4F
7900448617E9ADCF5F391210F1E2FA9068557309CF6A3B4D04A66F5325738FB9
D7F81917A0D1EEBC76C92669D105C6C1508186A21A892C2C04FDD87680A6A874
321538AD3DCE1D11517CE416BF8278F0CDB76B71030A6C051EC6709709A69FE5
6227DCD63987F10CCA62E8377FA08B04A825BCC35CD6DD16EBB843D2BD5AF22F
80F92C6EDF2BE9AA090C2592FE4319F2DE4241FCBC84D743807DEE6C2AF4C76F
E3B2C70D724B8A7F913C5C143A59C351A70A9BD15720C670319229BCA877A53B
1DFDA58841685A3DE2B2F2D02F2D396A2695886DC0F019AE4C28A83AAE23E21C
DCE708B48BAF61F8D23F575705AD7F8626050BBE5CE7F61C2CB20ADB17AE7B1B
27E45BE789E39C5A96A83DAC65A81B74A861F64CFCFB4AD544A05BE87E3ED7EF
E139AE1D55F1D4FDFBCB76BB01664158F6C999F655C5E8DC1D47962939BB0330
87647237C6EBDBE9C4C53E6FFC6F89C1F5487FAD849DC85D4A386AE59FF70930
F3519200DC8566DC6EDD5B30B6BB2CEE2DFDEF3E00CED9B03EC80786EF0E5EF0
C52020A4EFC4208E0E395DEEEDB5F5366196F85E0438AF69380E0DF325D7CF83
664E58712238BB930EE397BA970088B2F415E879EF747927A589E90AFCF6240B
2422B45FECE8DD4180EAF6C965D0F751CAF167AA054BC1A63729D81DE2C95E8E
64E7F199E96ED66BEE3C22F8FAD6350CF50AAC0ADEAB19CE45D4CEF7C6BF3200
79226B953E86B8B07FF0A8AF4A2BA7A3B7F77CB7609D45489F6247F94DFDA2BB
9E7F3287F60CFCD09A0D04AAE4D713AFDB3308FE530DBBC4607E4EF43EBBF8DD
534D621570CE520AAA59328B584401691215637BCE11BF3E8033561E08C8DAC2
9AA6AE976AAE878297EC872ED4BC24C249BE14744DDA6F114AAE4AD949899DE4
D73F0B2C211F5A2E69008C4CDA658C24EFFE6E1A48B82FF029EEB451BF78380B
6627736672C43219D543453B75A26B7A776C0B8E16341DC3D78B68D89183DC52
D1ECC1E84A1EA2DC66083566625A044B57FC7983D12E09832A7D23559B4E5501
0E8AB125E2E098E35981B29EC4EE6C73030B3469777E769ECFF07B84A761B69D
9CBDC4F468EE341AD87033582E3AC57439D2C7B00B3D8AB676B3875EDF3983A4
AC840DED99097424B58A89AB5F3BEDE059A906EAD30EA0F02E45AA3883622F65
94E431EA95F37D325EFC65B754FD3C15A7482A94D8BC79C66A00F4ADAB100657
8E5EA4B7271AABBEBFC07FE7EF42A87060914261E1CF38A1CF8308F179D1A042
41AEDEE3AA51DBFEE565A3357DD392E40C467D252A0D10548E384E2C9A7B1183
D91D9F236D6B1128D93BB82E8118C30A993E19FB4BADF743DF6EC28BB45A242A
FE3024F053D618FD1BE199DDA6AA0232D77F011C794765474B3718893B1CF67B
444703A4F84E61D84A5CD14258C076EDEB2CA21029239BCDFB194F37282B5405
A8B58E09111A96B0DFA930929AE6C6AFA6783D3D9B96CD0D85A5F523891247D9
04F9234900523479BDAF4C1C6C50C22FE45C6FD3DA58C09CE5AE971690227189
C28D6228D321EC2CEE96CB4BFECE6F56F6758EA600192D8D272D9C0138F3ED48
4594BC47C1DF2D8609D92FC0470D401470708070A3B2DBF90C6C3DB8DF3F833B
1E7F2128E2D2CE7800EEF12D4F595C072EF8F1CD2271C6D0E13EE1871BE873B6
6F81F9195CEB677DD30014F6D8D7BAA7854013F44B1B1D7BF7CB05E785DC0A58
33BD6214B2D86EAE3663AEA75B37D30F9DE00ADD3E015D5FA31359AB0C914313
63FF5AD89325967AE55DC0F442E628F7D0A85EEE9948C25B2676C60B76B88DA7
FA7BB30B69BE66F3958F95B9B88B9E65464C49DBD1EBBCC2A46F1AFC3EF813B0
1033DAF55264A886F94ABA89ACD0FE3588C78EAAF741F68BD82E358CA69550DB
52B5B24DA0992F9B725B0B20719684236AF3376F5F8BEDB5E24C8472704B8871
A07BFDA3FF6EFB42E0A27CE4BD4DB69CF76EA644F950C08A71424567D85520C2
238C83A6DB6BCC1EAFCF0031C9992164CFF644DE174236F71FE46BFBB43E22AE
C903013B07BDE4E0E732F0E94D17052DC986964E86DF1F479D7ABB350D5408B5
2AE81C27569770BE16AF56272B92B3D2DB6BEB8D6B71F4B4455763E32614587E
D985FF2ABFDD6288B1A2950A428B220F28A47579CC661F530AADC51DBDD23BC0
706C936603C9ABD7E2AE3704286F6800AEE61E8D27BAA37FDBDAF62CD32172BC
1E0837F1CEA28AE325DD364930252B15A37F0A2D9C7E76EC6B2EA47429CEC85A
4CE1141848101707A560E6E7DEBEDEB0BCDAEAB9332D251123DF5CCF8CF45E48
62CB12044D5D08310072F8076D79B06B985AFD6A4397DA08FC7C57C3170E2A35
5C1421E69DD1E3AFBF64AF20649F2F487F50D198B385B70994B29D5C94573AEA
BA5139F0D9FA2922DB137C5029BBE0D6AC479DB5546BE97520F0E4A7BF2D16CD
4004C4B97235BE30EEED9243476F0D85C0E8C4C011C3FF29413C5E632E48A5E9
ADD5D90F6B22785D7D6B8FD124D8E3062B7D5799355A12486888945787B666A1
1B92279F09E81563DDE0F5CE341C472D85121AF03C8E44C0B65E3702727F76F4
5C8C8E513E6A58D54E36D1FA0C9D968171833C5D5F70B5E247C6F4A344F9B681
F00251370C2DE1E0598EE47ED81350EF71C4CE0477C872E09393688B1702C738
2F35084B3D65A0790C1063A157B4F393411A3A32CDD77778F51CACA9D9D5A87B
E08F79E681D74256B575A75E41C671B8717E97B1004ADE4B1311C286869009BB
F1E8EA110A757C9D685A42E3794DCDAA2A7180CB3890DDB320904CE8C912D05D
987C771C57633B8AC762DE96E6E27EE1E02D7BE9F68DC53F2C8696CF5A0C2116
28BEC22522ABF0CC201A33AF08DD35A14E18872C6CCDFEA3F66D29AD51313149
9C119CAB42A59DCC0ACDBBD133F387FF91B12DA3A93F8FC2B3E439D70EB62792
4D733EC8712FA8FDC82E8CD565B27752CC241122D6A4EE160E36AC6626D0041F
82DE3A4B458CC6B581DDA8D7E24FB50F95A9733A2D5B23DA6E24DB964BE254C1
A4440039348F78A3533BA0C333A42F2B04D9657BE94B19A18DF6A7E651A2A4F4
113EA6DCDD940C216C0A184B838F8F15582011FA3B6FF201C5813B648D7F4D19
0899C60ADD6E690A6C875031092EF2C09573B3B50CDE7759A2131C2A385F1F20
FA24A720CD451E94A0D04BC1C5637D3D8BC7D9FC48E280102DFF95CBCFBE0353
26088C3A66A24C07F4EC5C7E6D45226B3BCCB097805721B30871A4EF6EFB8650
3F383C9D62054A5FD9EC3B734807A4164D9F64ED911E55D5BE385AEA8F1F4CB0
E1B0B06BD9991C80F6213CF88B035CA744FB4C95AD2236BC2573ECB7A571D8B1
393089D5A82819B02132CFD406A2606B67421D25F0FB9F7374EE797B3A76E718
C51AE2AC63198290A73EE1E56C791EC8D723C151EA4529B65E92CFCD40B93088
EEFA35C7BCEDB137365345A18EE8F99E82260C3CCC3999C335C60DD1CCA87AD2
3A94BE904FA19194D85AB73C177FFA93FAC047B72ADB200CAE4892B174BD1A6E
BB7C315C53BF26C5A4DB7C8606B6B3FEABD3AA051154C385E9E8A94CC4419172
0B87C00C660325E4D6DA638E80402D5FC2FDA8281AEAFB99A5CCE1538F08F441
CB2B9C4BA35874495B91FCD1CFFD744F3285DE840044554794611CFB7886E4AC
4C2359061BE2C2F73EDD815504DE356F410816BCD208019EEBB89CD0C520397B
286392444FB462896E706DDCA6E9069DBC5EDE361119C5BC81FFAD19182422A7
9194DD9B75846428D1572A2E346EB69D401CAAAD66E0071466826605B4E53CF8
71B4AFF9D081E5FEF19E77BF4B78440E2144C1C380F4E7371D47E9DA9A9B57C0
4E2B9F0B308FF25AA6EB672B19CBB8129BC9BEB38420B8368451F7A25E5F17BB
4AC273528DDD7AE20BDB8059F42E581F71C212F98362DB12BD9123BD472E5F89
9BCFDC7BDED6DFD05EA45107EE11A1D6FE021A0EE8526AFAA1691022B8C41BC7
B047E16D6B866DF7E7629F655F478B44D009A0591C4DA70441C6EAA9A96BCC8F
CF4C5172E713F50A48E35270A9576462B00A1E00CC243BDB2DA59D08B717E1CE
DE3DCC2D48EF4B3C02BBBE0BFC6045C616DDEE6D704AC7537002C9FF229E5319
9C7959724AF550FA3B7D2ABDACDE78B064155AB2400207745125159DC305B2A8
7EDF3EEC658A6EEAECC8D5A2102367EF736B289BA56547969D82D9E65B0C097E
D2848EA5C6B63425584CBBF718B770B6D11848F78DE5C61839E3C912CDD798D6
3B2B1383F31E182F92B7E8B8F4EEEAD1D8B662A914ABAC90766A5C2258AFB7BB
6F9D3537C5C8B143EF79719A65DF0FD32FA1E98153CC6670FC56C09077EFB7BC
926FBF54878EACA5A3AD859DAF51EE668AED50CB2B3AF60B9C2BC7FDA10A5C47
B4327D6FEF782FDF3E44FCEDE8D1C39E7084740564C031CF72BADE47097B8035
6CB69A7163D2E73415777EE275A5788143CF1EF9FD16D7D258B6071733025CEB
D2F719D8D2D69B5D27166509689A102662FC6EAD593184B96ABCE650D4792AEA
4EEE3EE2C2F79360345C8510F9209E491D5E44CA33F88CC678EA298B5B416919
83FF027133B0CF337C38716BD36E629355475221CDA824FDE64B3792454E5D87
8BEFCA730AD82DC1259B2B91172C2F0A25BC725EDFBA7227CEAA632F11F2082E
1A14083F5CF03F2E62EB876EC79501E6079590CF21338EC7442AFEF5C3B4A9C5
ECA21A91513D3DFDA114F4917ED17CA6B3045936C7EDB4D578C13D33B21CFE51
1459787317030BC9669200877369A0729AC84BE9D2E0544F7C41EBA6EC1DF118
CD53B49BCB6FF1A5764BBFC44D5F97DBC0F58A727FE4210315273D6225AB4ACB
35B3580C37E999BF594C473584ECD997CD7ECAE67708374D7B691CA79D56279D
FCADF5E7F37A0EFC737F30CA21523EE93D20BECB2468355831EE60819A3CEFD7
AEC7882FD73915D32D96D6934F6A237BF5C456D2961BCB1DBBB8F3FFA25F46A6
BF672FE1BD6036C0DB4ECE60E4A7C4A162960EC3CC9DD905BA818702D106E206
2837F2BEB9A477DF784180E86409F198A41B665FDC113EA13C1ED8C39A1D184E
47E978A41418BD0668CAD5653EA46379A43EE215D65E4DDAE1E74882640C7719
6920EB8C6DDDA8827990505B6AC91C0F2DED39D40FDF1B623AD7C46AB562B6F5
364AC1C4BEC81C6C0DB4FCCB9C11BE530A0EFE2C5A2CD89E7C362624F2B05DAF
51DDDD6680AA3206FE60BD9AFAF1C1A6A3A19401DA67D1E6BD164B923DDB544B
578CFDB3420FD8D3272FBC3D975AE3E0A4C710AE81DC4A490D6131E1BE009ED1
2B29D6C48BE3C5ED31CBCA980559B5C64385DA94F3BA485CF29188EFF12FCBE7
AB2B5A3B12C59215754C0F3320F6E13FCF08B27AAC36086E0CDD1795DAE38366
7AA0CA62C735F9CD072B56CCC59C906FFD5EB5FF16A39B8F4C44FA209BCCCBD2
29749F1056C513D0A0FE57F17440EADDB227DE3FCE7C0F094563828B09D75354
E20D43D960A68D15FDFB59EA0E612A0727DDF23E823C136D05418DD464DB2BEC
21E15BFDBCBBD7B180F9AF07253C2409510BF902F0060AEFA0624E7C861B65AD
A0D76EDB52A2A0A812D92D18BE8843147AE8468E7FBBCAF936C14E222BBA9E2A
7718397BBBF759945EB37D73B922236C2477A78415F7D02BA44FC86950DB4598
D9900FB4DA384F092FEA5A37FEDAC79D7C0EE1665EE78AB14584CF91AF6D62F0
D59A51BF93A9D1E8A6E5D51B985BF3AED28073E5734C45F209E02E4AE39725D4
ED603D6B894435B9749C595E688181197AF855FAF8B2B61BA5A39E847366F520
95813452580E515356394BCEF339E7C8ECD78BBEA9F3CA24CDACF5F42510AD6D
89DACD3FFF091BBDC02BE6E36D8EBC1E9ACA3189DFE73E1175740D65FC893469
79F314C29D67566225FED8C68BD8CF2B1D36A399FA22B9F7DBC51C26DD48C5F0
5F862BC6694D6DD4F446D761EBC0C4DA3C57BA43F901F7499950EA8DB711579C
7FF0EDE901CF5A9BEA6255A886F056094BEBA70AD1D9B457BC87EDF798FD281A
2C29F1BF3155C2CB72CBABD3DF623412B460FD54376E4375FFF21CF6BE6A3A20
288DF36628409A1D8552E300427775FE0C400637A8E634BCB76F7FF59D74177D
08400F992901AA81026215E2C78A6A2953F0784F75DE3BDDC5F40B21F995523B
2A24AE778B58E0C3F1754565DAAF54B66A5BBE0CD27710E93507C83B81BA32D8
C4AFFA51D90BE6040460AB421BF375E8624AA91F11CD4F75751AE4955298EC53
50F931B7D047091859AB10BF6275F3BE471840F5AF968AC392A646FF7D80E5A6
ECD5698B110BD14558EF17026AF02BCAD5330035F0D4A03D968CB144B078E83A
19AC904C97959943F96611B6CDF9F3B5EB07047954C31C45E71C3B31DC6C2AE2
EBE07D09D7B4A75501CD16570F1964474A5F71B37EC306C27C685465746CCB2A
0D1234825712AD11AE67B4514F6EDFF385262F8CEB08E71DC11124436A30A74A
9F85A0B169836E6080054F32404C7C403783D5EF1A7FEA88F3D9702E212D025C
4D02ED60881D24B06ADC0B83F06D3A96947D404A59CDDDE39A8C0844233CA4A9
D0E0E6BCB701222EF375D9609C28F32DE4DEEEA9E58513090D812ED51BD6A8F9
85A8479D2A9DE7C0E3376D361E6F3C0A4B7445BF16DC1D9B5D780A250180E4D9
E50A39CB13FE539709CD62E7242C4204E476EDC64357BE591429FA84D6561F50
EABB51EEE253481087A0E10FF0580C42364EEF37C8FEF6710E6B64FE46EFCE2E
DE05226B0F7F4AEF5BD3A8A9480CFC11B0B2E82F4F52B22836E795465B39A0A4
30F9D9CC280AF9AD992686343770F22C711047A2AE5F8DEDD3B2C9519EA2273D
47FD373E4F493B855287A26F754C7EA6117F06FDF9F406A23702CF9BBA4E8C41
8608E61522972D27F2646848304499508E73A3E0355B213F2B9679C890788B82
D9B4DE6A80AB71443E03B95BA3AC8BC13571793780555EEE6BBF4B793A05D0CB
A995AE6170FD35129347A7DD686BFB21E9E9BC9C3C591D810B091CC9FA039DB4
5F39A41D001D78C19EF02EE1E823E1B7752425AD188E5791CE647D3E4BDF17EA
BB3BD346296A0015A647A52D9E48A37CB2EA0E07596584A00E1B4D84E6F6DF75
A40A5EE8522B62BFF840596A287647FDAD566EE80B7FD666C7F15D78E284254E
E30078F824F5F5888E4C95A48EB824F7C79CFF035EC634891DB50F14E5CCCA73
CCDB3AB23A65AA52664B25AD1050D4C9C0144F4DF3606FF0D5B58A34C1F07197
62FF7F3797E2756B77C9A1E7A60B605920E8E1A25A21610AD2A9FBE9681E4991
258A912CDFDA6E31A5C9B7AEB9FEEB8D80CADC788EE77321255821CEEC3FDBA7
3C5C5E3A22E8DFB1FDE2EDB63F38C03691ED5F9D3C095601AAF8122A5175769A
B24B704D4A08B4FDF5C79D4D71EA4CB86B8670B7867D6B34AC52CE25374A63E4
BD22AA7AF533DA343ED96F0A2AFC452BD258999D7962D5FEBE9C1FA2DF985F43
C4A83189D33F935D06D201EEE45FB8119CDB052997D2AE066CA674391DCDF45E
67E3CF505185D8FB0001D9734CD9E8D2F45FF79A81AE041C51CB2D99335A11AD
B522036D8D4F8C47C5D4F4A3A10B88F9F64449082587BF8D37ADE8ECC17CC61F
B5C889A3B9E6F00DA650C0806993F8C76216DC049CA4489801482307829A9D9D
A03BF68C44E6BD7D6169616468F4D90059A8640250E17F7A2975746ED04DB7BA
2855D79949F1D85DEFC2FAC5319B91CC280C9E214C1AC7D99539EF558C1A5404
871E7B21BFE2C9704D2B099749038F8046D7AC262B181456F917C55F183981E0
0F5CDE9EF91BC31269267BFDC94A1A0E3F4FC4D6534281D77506C83352EC4493
37CB05C9B3E1FCDF8173D82D30196A6C1F5545D632FB7A273F04FFD3DDE0582B
B4631D4FFB3E5C8FD6532EF188698AE25399CF0A7A81E90ED5837B327BC13946
2C0255CBFC89FE60D0EEAE2D259AF0364CB898C1BE2523865AC1A9BF20CFFCA9
A4C9E08BE2A1699BFA5D3984CF32B8B39E4B7EB6FEE7451332E985C6A59F0DA1
7FD5A546C5AC4A9E01979E0874056ED6DF0813FA540D3D8C074B2C9CD1351DE8
9795597AB40F4B26899B6C2020F8BA944758B7A71E77FC658D4B382D4904BE9D
02899F0B5CF90FE9FC6F124193A0BE0BEBB4313499C3D41B3484E06971B7B41A
BEEA3EC402C692E35A6F061C7221C9B7B532CA8A65AB3C0DAD29E9F9CE0E0F7C
831FE12A72E870951CC3D1D58471C5CE93EBECB23131264D228BA0CF0F439FA2
3758A05CB0E89914485E711AA99BD5ABA0F77C2AFF5B9F948BD08850AF0CAA8F
C428B9C21D788F8EF82406D8E81F798A014E5764937261C6C23A5D62D1292822
EDFF1E57D8C8B7985601FB50318609F3E6B0B147CDEC623C26D485733417DE5B
1984BCEA78E3F45D48B2C0C2F7E08E8561A98C6BE3E58781DEE7A486AAC034AA
CFC3373EF9CF896D54B84E86C6222CF5B388BDD61DAA72B52271BD0A4B8DA120
008F3E24EAE37E4B96B98706F19579D3E24BBD88411B6FEAB5DA0F4FB2789654
E85529F4683059B72365072FC6586A5B77313B62C3415A4FD2644AD6106DA1E3
B9F46EB75850B31650A6705528BE1484AB94AC2740EB4E7AE23329340962491A
3C1045E7F430E2299C496FAB6691691706C84960CCABF14D4A8BB9EE1A58A1FA
F419F8EC4E978DC02B9FD3580610F550F2FB83BA308F0B41AB369B0F214CD06D
93537ACB0D5A69B89CC4BBD14CF97D47AF1079E1028A3C03C5C86FA728E1939E
2F83EB65ABAC22FEC9E0BE2726E453B8C6B370CA6EF03E12B283B91BA4A54D47
7663CB4767EDDE0394A923CEA1B2DBE4198BB3B6E421DC71AD685D92803EB006
EF4CA16476D0A56C4061DE0A13093EB02EDDED2F1A74AFE837B7F061A229C0AA
69B21C1FB36512F1590C74B697D7E6ECE89F8E9DFEB6A45228CBF509E81E9509
4CC35270D9E6DEB7503869D00607BA14FF10D8A1CC80175D87322EAEFA67C77E
66A92D992899CF2CF723EAE28B31479295C9CB23146A455FB1C69008AFFF6CE8
4229CCB7CE075B95F52C1C4A2F1291C82D74C0FADBABEAF74F3ADA2ABF05CA8C
C68AF2448E949C33382B1EC780C5AE8F0AA5F01DD92AD19A3D48D0AA2F4CDC8B
3FE179563376D8E127FE3A4734E1667D7D2B882B59FC6D5284E5364D71643648
589D7A28BFD0A9B7B02CA26F7625B0807956DD5955A00BC572B549582D8DB800
18CB3F403703E7518E4516B3007D8F63E5898184872AFF87DA809060EF7CCBD7
6680B159D5BB490105D3E5C5CC5AE7D9FF37F7F8C4C95D07CB7AC67BE5D43118
4490CDA521E5ABD27EF6AD019DCBF25DDCBC3A76BD925CF58B4051A103A49C53
8C53AF05199B9202D9FB80D5BD32DB1E1C669B4311C6539DD3802CD61E4BD3E3
AA8D7D4FE82321F4D62B9D2EFC08702858F210AE553D54D27C33CC1980908859
1514FC6DFFFBDC6C361C339ABDB36DBA65924086B5D17B10B7EA85CE4CD01B64
27C2B50F311079494633B67216EF29659B4459CC9DC41C7DB5034C04A72EE5A0
355BF59FB79DAA5A5DBEE4BC82C7CEDC12C9A93C37081600E16376CF381F8255
40B064C6BCB4084C9E3BAE04CC66ABAC16EB3D661C51FC7FA73887B66059C763
C85526A81285DE655F498366DD88C11E8EA5A1542ED3FD24CA67A9DAA0134948
7984219351C7D3E0FFF5D1A1A01BD9384528F76F2A82F7EFB55D3EF0C522AED1
DC287B4AB6308C43A54CD6CF561669C5BC52B6367033BFA76F0D5828C6CE9282
012484C15875E47E6D9CE080C63EDF7AE605F43D61628D7E6DEA7AF2F39BA1FD
0D56959466D2E5D0490984B645F98D2589EE88CB0E142545B63E90A900ECA809
42C0E28C54186FD28D1DE12BD2DB1F2C6992922B62DD614D3398E6A4DD896AD8
58DAE20DF313B6B2DC5DDCCC2718BBC9B687C15D677EE076E1902C0DC00CC90D
9B20F8205BF17C10EE167EC7621392F93362AB15A91F503672E28487AFEBC462
78BEA23959237EE122FC9F16A8133F0026F65B6D51B38CCDDCBCDBA48D0867C5
3AB83FB5281C64958253E4D7C26EAB36F4D55C90EEC40D7A5B18A898C444EA94
A0BE946958B83C20C79854E62A985EDACB1BE109E1A2758BFDCF37DC700E5DD2
2AE3577AED31993CAAC7B18FEA1F4AF9BCD5961ADCE3BE023BC8DA828ACAB049
1EB15D23170103F02EFC6045D6DE806677B18232A4225EC051F1EAFB87CE5241
59E06207E0B9E1304597626B4926AA83E6B63249063EAB9A2228A65550E95EAF
6A29D06D56A1D3C7337CD70CADDA71833204B72CE5435BFA8BB90FCA51217FB6
0EE23F61CEC16B21C0D46B985041922E8AB33A43D7A34B445C202CC29B38D2F8
250C4DD697F917DB2492E75D435F3A2DFA252024DBC3F8FF7260A27533B05AA1
36EABCF8E54D95B4B093095F9636649268C672033441DF4FD9F86F18D7D85540
4C1FF1E9B83C8181989D9D64425B45D37DEC51BA0F9F96A8C351D275E3B980EE
D6DB549FF3FBA35FDDEE15CECA36488039D98FA44087781CE8366DE02DDF8AEE
18724F4852AA3ED07EA118C1801D4204A1DF245A699A17F3580D1055D829FC92
0735A248429E5392FB14EF50CAE0C5B7A56AD12E9F53ACC653B9522241C5DB2B
84CE2BC10FC31F46C451870760625C5900414C6164717968887C3F50B7BB581A
1D37E6C99B0BB476B9FEE65D1345CAE2E2549384918890BDAAA1F24E5DE151C0
FBDB648EB528537F798B9762410F5FA43BF95C4A72B34BE053C83045DBCAE9BE
BAFD45CD215226DB3430D56AFF3908C7BB6FA6A6D4E55AE8E0905FE1EA308025
B87C3C3005FF1073F795A82B256BE07F01DB71775B53E67428CFBF1DE630DAA4
11667BB11DD1B6389CE7CBC5FC4062B02004C44DA3D75BD445F5D3083A915E2D
FF1B302E169018503E4D3DB54B8E7D15D7C55BDB8E17B8D7BDDC9DDBCDB63F08
63D035A936DECD1CB3FBFCA74C69F3E0F50846C67CEF036CE3EAC52FC063A210
274EB271495017FBCBEDFF6FA69CE4E97691C8813C2DE885B09B4918F005AA47
1343F997DC43DDBD06AA711127329186DFAFF94DE3F1EC41B6B4731A14041C9E
E5E39DA356782F0753778FB8BEF7A83CB504FB605C0FCF9ADD00E456F75C09DE
219E47B5D3323397A7F4FA522D08BBDD7EC1F84AF6954AAA3B92B5FFA0920919
C6598710517DA47B8567B9817E59C1B9932BB3665AB7ECD6DE0E1B592FF4B709
96A752246EFAAB2CFFA1959CF2E626417EA8337554C8580BF00221428A5CDDA5
AFD0D04050EDE3BFED1CCB9B0B91A75037D2D114199D5D4AD5A1031F8EEC5D5B
515B5CAD879E56BED8DC342B83B5351ADCF4A82BFE34252E986E40CE643E315D
CF7EF2069F6B61E2CAF81304A1F96A638320553D7E97422478FCCA93A9A55054
A00525DCB88341A8288CF42A4EBACE58A98D0D151FA064DD66E40A591279FD5D
E025BE3D7A45E180F985B318087A9C59B887D51CA52515D680638FF1D9B88958
31AC19FAD399B8798001FAB4CD76523AF459FE1D5CFBB444369BA1E8EAF02163
600FCD520B673198D9BE654ABEC95291C934BD9D6A5EE6E51C263DDE289DB739
138B4E5FFF8D05D66E29CB9A931C4A9D99ACF16CAF2C7E868F6C25F4FE5AFC00
D6158E3AA61465ED025076B0B42DAEBBF75E7501051208E84492C3DD2B86A580
AC6D3EE60A697EB71A67ECA946D1A23417B08E1F68217EB3E5366E74947C15B8
1F1F973DC120B114074A9250FA914E117463A6A8A8218064EB0864A632DAA0E6
F6A772BB85BF5631AE9648A4BA14D0AA333464BD04975C6EC4844B3E5742C656
2F7959F05B7370B7B5925F26228B7A5F4C3F3598CCC645FA7C58F187C081B590
109B26A1F438FFD67BBEBA312DFAC1CE2494CAA9B4A34345125803E900A23EE9
E9970B299F42A5243D0BF3A3AB6C750EAD125ADF5336021EB874CDA372752B7C
92F854D29A9DF7148C3D1E1269ABEE171D0EEF6F43D9239A79FE6DC45151BBCA
0EF047F8374EFC63DAA91DE0AF3F7B1A3AE7D60A3E5385C28287E84D527257E0
20A9D0275F96875A88F8CA379C5FFD6F40A55C2FB2ECEBCDBF5885927277E9B1
4BE33048022D85FBFC4404CDCCAA33D2A0B98D77C1B52CA4E9EA520F680083BD
9612C92B32F1B18F9DF7CA647E3AFE9285C09019DD94D49E52DF672AE1B20F34
B5D5F18319D3AC22E2F3DE4C1714392AA6E8F6991EEE6E95D1D35D4255A9A4C8
0DB6B6217CC3300CCEF8F6E2EBDD68527FE7C61EF848DEE8DA369BD957F0E40D
5BCA1F1897D40BEFF72491176E98D6C7DC5511F2ACADE609422A9C1CC380B540
905DA6DF32C9960EF214FC005C72BE5A9E5AD22DF2A83D8DE8C6ECDCBD1A02FA
0299CA958AB34D227C25AED8992837411CA6BCF936166B628E201415D78CF513
F75CC07E4F8DE32BF2E4A17E42095D931532168CDF55E1196E68F86D84CE354A
987F549AAAFEB96D6ABFABC5EF613C3E5099A7731FDE61829280398DB331B96D
78BD761638B5F52AB6C9AAC2DE5649B2BF6A93964A930BB72368FAD1A8491810
D2334F257E9244705CE1A080ACBCBDED369921677C119E03C431576464B93C24
C1495352597050262ABCAF8E95D23C8E3C181260B03EAC76BA05D9CA6E55D202
E48EA8C27C4C935F4EDCC16D9405D41D615CA970829782779C313CBBF09703CB
6F83C07B84F63F28C4579B829273FA3AF931C336B1B6EE82D790727114EA8157
A146873C00CBF95FCA7B30188B039DDD23DF1EF6BAFC013BE476A83E5314BC4A
6B9E5B62B4EF66526836D1A6A9965DAA6D436EBFD1CBDC40D8A6A255FC5D1DEF
C794F18118C42F3C09860510C262C00975716AA31BA39C47C2267AEABFC2742C
C9E581AB7A0285838805E407F0483EB7D11ABA7A4E6284DE4ECA72468070D3D5
46048EA4DCF92ED0EE29A188A3238CBEE3C48B4B479DF87EB17C35B4D010F676
34776C63A1176BBE5852BAE258ED101CFC6769C792D4CD7542563BBE4745A9AC
7B11E454190AFF4121E795785993A0432DC641F98533F53BC8028AD34F6AAF2F
596277200ED3D641CB77AE1CCEF9C5D2700E6B8835FE66EC2EF303505AC88172
1A4BE65338468847928F036B44D20657AB8C199CCA70743EE38C8865981B00F2
318A823A33F1C5AEEA74BC6D7EDBBCAF40070CE1E542323F2B0E01CB727C9D39
02DC47227B835977A4CA91B0A2C862722F886D46439C542D79A6097847AE587D
2E57BE3547324ADB7CE861BDF9C080BCCF03DFBD97EB7A93226F617B42E043DA
3E45A7864E0455635BBD54E0D9741F161F0A29E619890168D0490DA2BFE6011E
52853FE34EB08A8DDB5AA0A783F25EA4AF3C9B977F53F3E070EDDD90BDE957B5
82991127B3007D35FC5CBBF880A2BEA1B393528F82E0DEA16C4B4C386CAF4ED2
9F0CFC4885DA356A21C8C5294FEBCBA5DBBB12236F2FCA5C60D4D0BD717F94F8
4F83A65E2AA927B3718C425AEC7C51681AD407F98A13A44FE629865D60087447
DFB31B0E5FFDA8EB0CBA182EE556DF625B294F2510CFD66ACBE564E1785801A4
E44E99CAAFC691EFA89E4BBDF27D90EDE8AAF66BC5F7067DC999D0782290B520
406E33CB162926236B4A1BA95A9510DFA366FD15D373CCC3B211609C8DD4AA56
AEF6B7DF59FF99334A4A10B56798A017E89AAAE75350C38BC282A81642611323
38555B4B4C8A117F100307FBCAA4C3AB4F320D56400AC24238BB2FB044A507D9
1696729F321062D49EFD198E6DB0E87036E8C7EB8F63911A28CC4AFA94E500FA
675611750E1057F2A746C70002EEB7FC1671C6082F0757F2E8DDE27597824B43
30A3076E4E94FD7F8DAEFD557C53B6B38EA5E3CAB5EC7A57927AFCAC7B9DF68A
6E91FA65704BD5AE218009213256763E7197E9BDBFFD64C826D4821B375686CE
C8CF80C92F200D3948A4F00A0499F8851E0C0B9CEA52F403B2E2281B71674080
04A4ECE93590A82F7148F1B5B56C7E55E0064C9E0F224461BD9B9C880F31D444
E3E125371497985255A38D4D748F8B3FB80927A72F1F5B6C282CBD3D42D9BFD7
A8B3E08ADB68E797457B39BC4615FE8026E0D149F4B642B8A47918569D59C662
6328DF091692F546447BD19FA2B93D0C3A2D8278451756894F548A28A6CD6D29
F90744BE8F940FA2C12D205D0C824C7A5AE39E6BDD232C72A68652705D2060A4
C3D0474D77F9DC07D9170E09152DA667EE3BBD361DB32B4689155B6287321374
78BFDACC2B07EB9840E85F0BEF8183D5ACA5B0C1E425E48F172161E78385DD7D
92187805699B98EAA1C4D5694B8FBB7EE2F5D52368EFA807A4566BC8706C83DA
F596398364673C792CEAC5AC4795B7DD39A26CD170371C9D4760608226495940
1104D22B3ED9A614626561EB335797AEAFEEA6DCD80C1C050E27B7F164B8A6D1
D46F3DE38347433417D09A1D52CADFEC732F3E14EDFAB2C387CB8D3819CF977F
412FA84E7087E68F95A538A5DE41A45BE1C1CDCAA8A986B7947A0E02CA5DFF1E
BA66334B4C3F006C8738F9A815F401BA3E2A67313FE05ACAA264908619A3F6D7
0EEDD66202D535D11833D0C5714622891CAC363E93A73E3CC2115778BA181545
1B2F3B6D3EAA8BD2BEAA41BE6A8A66C6478EE501BDD01DB0158F80467D9F0D77
35096A7A73B8FA18D1158206A297BBB176CA190FFBA0B91798CB5B91FF2115E0
DBDA3BF2AC668546C8E4396DC0FF73FDF887D6BE403A4701F09F0DDF0DB9DC25
F76351C80811397752E460D50B27798140EE620C8481B891757C9129893BBE92
44E2370D35EE9F67EE43742A618CBCF8075677C662429B37AF1EFC9717AEBC77
81D2FBC1098E091CCE8E49582E300B9A594734474C106D6144961C499A7C3C7F
06585580ACAD3DC3E86BFF98A53F9EAC81254CEEB0242970ADBE33D48510835C
B28A733313CE00A52503D6072C25A8F01DD2879CEC557B274ABC1C3A8C6E66F1
ED1AC174076008E7C86B0629B004BA7FE2388A3FBB654D4AC7A66A7994CD13A4
2AE69A0DD1BC6F0232C38C5468729A22716A468F5BF2BBF54AF38FCB3E7271D2
11A976A26606366E8C1986ABFCCD5BAC4CA38FA8474E8C5E8A0575F1AFC1F505
2085C9240F42EC72680A8507AEDB7A2F590448F6B7F72666A0A94C858E740C1D
95FE55148999DF83F5CC526265EACD47E7A6A6C9F78B9CE20487D2F56574F15A
1B4BA64CFDB0294FFC1656844408C387BC1940D320B13FD53896B2C658E86693
00DD254F0827CC0FB0DA13DBD64E7082D415CE57821E8EBAAC621CA65DAD6A13
7EA3838F81DEE7C484D282968701AB3F3237E135EF4662D8600F67C6A7389EA2
D619EB942C06019A12A5644DCF175DBCCBA8ACB91852FA3E7AC4260C3E8B1761
E7792CA6A048A9D8C27CA54E8B406D7666BF7DBDD1AE19549973F2F9BB026007
1DCE0C182B47C719552DB7BDA12B90E978DDF75ACBAA129753511D6B6A67A956
19614E6E4C51429B4E1A6D32A9FDEFD670A54E2DBB775BA864589BFE0DA663C3
CF6722A29EF938AB4EDD99DD5AD828FC46472DB66B2C73FC9EE4C005CFC1E89B
A9E4213BABEC72A5600D8A9238CC6634EBFFC6D68525762BCC71EEC031C790A9
3024AF2D0DEC002A24BED053E089F8FB9609738897882ED4A5483967E8C30302
052AD4218EA0F5C449683AF3128AD7B0A8BEA6C25D92F2A6F33659FE333AE2B8
DFF34B36B42B79E83C3D31136C0488116CEC83B9CED00E5BEE3AD53E5C34754F
7E6E570ED818CC196278864715024502A8241558E37716CA083A5071BA2E5AE8
A8C0424A138645675E74AD69A1A3B814BA8792A9EA57BD459765D3F7AFCCDE60
F52E0653D085781F60C469C80E30B0A14388A81A7527011EBDBEDFD02F9FD5FE
C4F692E026B63F17B700CA471E2614365B874A4398B2D07800D653547A62130C
8A21275FA38BB536D2312D1169CC1246D30429EED4077E62E69BC05348E2E020
E328DF79669F1D2333FD875F700140CC919E828577AF4D0ABAA9D0AA0A553B09
A8B037000847FB069DC31055031EB8196131693A5CA0C77E19EBD4D280F8C118
3714C1A91D265BC50E404C3FD2D305E5A3722CC1C03446D40FE08695735B0848
ADB90A4836EDF67104113B6C726188A51F256D2B50FDD34F1DB7DBC650C2668E
01FCBA5539CEE07C7BACF53925FCC5230563932729E5BAEBA642D1E26DE9CE62
930F3E8C283287E60B4A9B6949E8D839E585EBBC19E151965BDAE67B07E25A00
4391A69BFA5723A5D6EA24822BAB58A472E353A033B7AB619960C0C7D8CD2443
14829B1E7064579E83BF15912D4590795EEDB9F3EB484615F54E23407BAB4E50
104EFA187FE682B656EA3E1280298E16A4A4167876732BB6250C9F80B528BDC0
F85EF52CA0467F061ECE5386016B201BA3DED5D676645F26A16CA9C4BFC4B79B
2956EAA0958CF2373455DF9B7E2E5E99C393D8287742D5F37DAADFC7D223ABBB
DBD13B56EBFDCDF284231FB5DDF1FF14ADFEDFC819C044E7119556E092466311
D51087D9D6657EB74D9825318E01663428382A9D7B4AE43FB979CAA6F0D94A6F
EEB28F6A2137C77CDCDDDACDC27177478C77B386FFE87542DA1A3184AE0F1953
4B6BC3383105BA61E380CC4960DBA58ED53F37418EAD8FF8A2078F7AD7D0D1C5
9E3A12D2E15A76D4F35EDB8A44BA4139A7A377E34C30673C8C744EC6FB25C615
B7FC0D4B279120A08D56DAF86748412ECE64C0CAB0F3E60DFD45D5D7E49C5EA8
77C8D2F5537EF1ED097FAF3F2F37309A2FE252D09AF69B655E83E907B2447B43
CFDC95C9FC47B61D3B70E06987C7301BE0D76CEB3DF9DE6DA83CEE4BDA674B9E
E0A856D08F85D3E525B421AA390030D4C29C49297E766EB88F5B014D329D59CE
55BC70A4237DBF0D1FCD301D248419579791E922529B2CF35B5C33A9952221EF
38389672CAF81D603AA8920EF37FE68ED923089F09FF273E6FC44F7F55E1C042
98561176E9D29FFD4AC093EC9058F2A52D5D96C94C3D508DDA1C352416360741
EF2F2C52F4372EB411F5D62BA624DA936A692C3F3B5A1DD201FC24288DFDA0C1
CCDCE50BF307054854E7A9B9A063BF017B113D1DE05A59314064952CD8553B
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont 
%%BeginFont: CMR10
%!PS-AdobeFont-1.1: CMR10 1.00B
%%CreationDate: 1992 Feb 19 19:54:52
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.00B) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMR10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /CMR10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /.notdef put
readonly def
/FontBBox{-251 -250 1009 969}readonly def
/UniqueID 5000793 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
2BDBF16FBC7512FAA308A093FE5CF7158F1163BC1F3352E22A1452E73FECA8A4
87100FB1FFC4C8AF409B2067537220E605DA0852CA49839E1386AF9D7A1A455F
D1F017CE45884D76EF2CB9BC5821FD25365DDEA6E45F332B5F68A44AD8A530F0
92A36FAC8D27F9087AFEEA2096F839A2BC4B937F24E080EF7C0F9374A18D565C
295A05210DB96A23175AC59A9BD0147A310EF49C551A417E0A22703F94FF7B75
409A5D417DA6730A69E310FA6A4229FC7E4F620B0FC4C63C50E99E179EB51E4C
4BC45217722F1E8E40F1E1428E792EAFE05C5A50D38C52114DFCD24D54027CBF
2512DD116F0463DE4052A7AD53B641A27E81E481947884CE35661B49153FA19E
0A2A860C7B61558671303DE6AE06A80E4E450E17067676E6BBB42A9A24ACBC3E
B0CA7B7A3BFEA84FED39CCFB6D545BB2BCC49E5E16976407AB9D94556CD4F008
24EF579B6800B6DC3AAF840B3FC6822872368E3B4274DD06CA36AF8F6346C11B
43C772CC242F3B212C4BD7018D71A1A74C9A94ED0093A5FB6557F4E0751047AF
D72098ECA301B8AE68110F983796E581F106144951DF5B750432A230FDA3B575
5A38B5E7972AABC12306A01A99FCF8189D71B8DBF49550BAEA9CF1B97CBFC7CC
96498ECC938B1A1710B670657DE923A659DB8757147B140A48067328E7E3F9C3
7D1888B284904301450CE0BC15EEEA00E48CCD6388F3FC3BEFD8D9C400015B65
0F2F536D035626B1FF0A69D732C7A1836D635C30C06BED4327737029E5BA5830
B9E88A4024C3326AD2F34F47B54739B48825AD6699F7D117EA4C4AEC4440BF6D
AA0099DEFD326235965C63647921828BF269ECC87A2B1C8CAD6C78B6E561B007
97BE2BC7CA32B4534075F6491BE959D1F635463E71679E527F4F456F774B2AF8
FEF3D8C63B2F8B99FE0F73BA44B3CF15A613471EA3C7A1CD783D3EB41F4ACEE5
20759B6A4C4466E2D80EF7C7866BAD06E5DF0434D2C607FC82C9EBD4D8902EE4
0A7617C3AEACCB7CCE00319D0677AA6DB7E0250B51908F966977BD8C8D07FDBD
F4D058444E7D7D91788DEA997CBE0545902E67194B7BA3CD0BF454FCA60B9A20
3E6BB526D2D5B5321EE18DD2A0B15E53BCB8E3E01067B30ED2DD2CB9B06D3122
A737435305D42DE9C6B614926BFD44DF10D14402EBEDFF0B144B1C9BD22D7379
5262FEEAFE31C8A721C2D46AA00C10681BA9970D09F1EA4FA1566B96E221864A
45A24ADAEC63F61C9FD18376D3984449A1F998C318A8FE36D0D5020E18A49625
0F3BB603BA1F3E66FF412F6A32433FF8BD2968D79CE4273AD0E0CDDA5153C2BF
F8A46A2244F9394A49D339F763F5A7411A3C29336B21CCB01723705AF589B078
3763035411FE36AB5D744E81379106890688CB5BC41184548B7FEBA08DE7288E
E6570FEA20C51FACE8E8F824BB61A4A038AB817C47B87391611B77928B2565A9
3B27A573C05D36ED01D8F27CB2C793370FA9B90021B5696280A55F2CB6117B64
293EAE0EA5A243F56FD007773CA35DF71B3D28643C25210CCE25F37A5095D6E5
9CAFD99DD1DB0D7EAD454C13464DF6FF5DD42339797AE5AE467084550FC00139
6EE818C6365007B2FD6E26285B832CFE6EA7E99665A224C9813C036CED262639
3FB39C1F05FF8F31D2DEF37BB9B883334F51EA124581B786A3D5FE6424B19872
AE7CB657C8D9528934B990B94FA4A6D61BC9D2CA9B4E95A22CBAA066043F44D1
AF32F545B9E123536914A7FD7FE96F12039EC25128C810BFF546AABC609DF57F
E19D511F324E32956177C4376D191C691B9F0B21FA84BAF3DCBBA536CD710A80
1DCD4C83C02E69A140E1A4CFFA3B012398F21DDD96ED8060DB98EE133F430022
41BA1DA473F1C99F0D6CDBD35188DAF712AC83E0EDE08EFC3CA2B4A21EE55692
CF22799274A5CFAE84C89C937AEECF9CC71A328015B63C1730FA68A18871E174
D035568A73346EBE4EBCAE410A4F2505370A0ECB487FB40FD823065AC56CE66A
9D8440C5B3F74B855EDAECE69835137D4D76FC0FEBA53998F57EEF25C7E3D9A9
21BFDBD66C84D8AF7D8A3B79FAA9DA2963FD47689E519FBB2B7793CE6DE04A5C
203539BF94A5A700E65B5A5DD37B051EA4348BDC4CA39909ABDF8C4102A58FD6
661206115F7EF6C29E12408BADB83AD40071F53B501C15601338467BED90B659
2708D01CD77E109ABA63C19FE12606511639C5D9D5522C80692D1CA874E17B9C
753AEEF13718DD36A008B2D39D618F4F766174423AE972CB619634766A5DA025
F9682D9E2A3C752D0F6F18B0D58319FCA606BD6DBC4F83D19DCAC84A6165B460
AC1A0057B12E2023F175E6A51FC12A4852043F6F2F2625ECFF6E866293531437
1C060C9383278C81B8DF68BEED88C49F86B7617C5B938457D19FA336C616D2AB
0A430B489EAE7998EAB74FC8C037550E12EF9AC540FD37473DB1A44B1747A4C7
4687624D806FAC32A53BD65A333DA3732ADA2774D6621BB59BDAECA5637F1F41
CD2AAEA8DB9774C2730DBDE3A2F9499C719A0E9D59FF37C4F4E6E54D5EC402C8
6599488AE21DD119CA2BF54EDB306B26351D0CC4C82040835580087C60327110
9F8A1277DDBBD25823AD30F0E960604BFF9CE454C5C841119F73535F3093FBD6
8E47B1357BA56E3D906EC70D68E85465479539187B56EC67A64DE38FC444950E
A82B014254689B676BD02A3068ED7ED5D4C9CA1839ACD730A1796A6FEE8905DC
73D95625C5F6B4364B1507A313B56BDB2A1DBEBD436AD80F31439C84BD00248C
F900452374CBDC6ECBC496178471EDA30464C1C4BF38936EC7E7767FF4637CD0
34D3C202285C0B3ACA5515977C253F00DEDD878F6AD84BA9A1041553A3626EE9
A5B4C881E77FF893293253F9507A3B8F955BF288562B67E2A99DF65D86D14B48
DC7587B628505B75A6DFA4CC8DB2CFCAC62ECA302FF5FCAB51FCE19FD7BB7675
D747A66872C49954B0C1547A8759E42FD7219E7D9C87F62451C47B13B46D9619
D0CBCBF138ED5CB03C8793626FBF6B4ADEEC391FC7AB65269CD899FAFEC8A9D9
DD838E4AC1249C33E3CD4539F09989D0407AD5A9A3C99BA7A24F62D428406A61
862D66DAA7EDCF0D8EE84B4399BB7FD1E117F90046F53CB268327B3333C0D82E
6BCBD0A6BBF76130D08527593DCADDF3B1D76A9154C5919562D5BA8767A899D4
DF546740D7EE9908EAFD91CE8F707A74696ED0DE86F6BE6C1E7DF1534E1A645F
D2315D77E06A87CF2093119D5CC415783F73F3561E7D336E3774570D50569DDB
F5DC496B875A91F2A2074DB8A7E44F86698BE3701727D63F644FF0DF38ED505E
ACB70239F0287885F27B6D1487A9CDF5817F92866613ACD932B6347F5857B242
95C3C47EE9AA298763F9BA372E0215161696CCA5C5EC4CA9088AF24D18AE43BA
1D0F9C25C23645D97AA5E9C05C59FD2E7B5CF123048FEF61080F6E16AB0D852A
0A0F0DC41D08B6DF137200563D61539C3B5DFB979889AC756B8A42A81D422DA1
9DB2215B060FDEDE2AD01D4AF60ECB81C94B66E1B8036B71CDDC8721E3D270FD
CD92252E2F73EB2CFA581A0AB5B196EEF05E926E3A8C45936FB43F7E726350B6
FF5C9D68CC477F4C4541E37210CC0DC917B9458699100283BBED7DE5634B08E1
E8A1275815A358B4C0D3787313C850999DF7330A5165A70BB5B5104415A5F973
3160B501075FC60DAF1C8C6DA3A674331DDE8854DE916DDD0491906F4EBB7F6A
C56C4A9D6132320E2E021CFEA843F7C56203E943D3A9B12D8321EAABAE3580BD
58D81B6C551BB86D2FB83A3E6B4924EE0D07E961E5235E7D473647322CC62C69
EB8DDEA11AAED833A80339E58330BD4AC7BC67B692ABA6A34D4D2D7A1A279A45
91974DF964E64592E3856B6D72B26D6E16241437159F3A09A5F30A4360083530
C76CD71780CC61C31DDE51A144E6E656F62A579D808F5FA729F1A66382EABA98
B6E376765D96FF4015BF46B3314B72C007A8DAE08A2E29F3461FA56B4BA6DBAF
6AC06F4C94FE3F2D692913E13F99B6AFABF801C0119625C51F8015E35BA453E5
8AD266F5BE4EA6E839C605AFCA7F11B673E51FF62A17D6BC824119A89599F87A
5C8D5AD461539AE6C846F785744E9F6B849635FF7C9AFB36F3725C485111C64B
DB1EA3A8D2AFC19433BDA2DDB2A915D8286E669A7B2BF56ECB12994EE78B4D02
E7DA102EDB56C598EB628D57B8ED10765F5568F7C2572C63F68A9F159204BFC5
89652150C585F950C9DABD8EF3923D2CD92C2A20F40133942E80251D52681ECB
2F8E4937F07F9AACF08094E5544C94133FA4944E1AAA36F4A30649817A43ABF5
7BCA67DA55F0D46F13389D22AF09B1D782ECDA1D611A3DE5F739E01D4A1FBF21
045DA51BB81EC19664F10D07F12BEB2EB7E1EF141F369FC590143D89E1E64AD3
7A5851900DA4A23659979F583A2F089E02B3198C8E9731C64EF0501101FA8A7D
9C475DA74FEC51BD9341883E296C6BD5D1D9F2A2C8B00806410E32911030F892
39A8FBDED50DFAE0C1627CD2E71DBB3624493EF567EFF49C18614E9DFA57A0C6
B08DF16E26591AAB2261F36CE48A72395E0C06DEC7D57D9EA3941DC568684FA4
F7F1ECA2A32DA0BEC4E0823706CF158B8AFB72869939A6D202FE7814D5E86CD3
CDBD1521DEE98E55D080E4A04FFFF89DBB1D4D46D1595B2E4C0C48ACA3AC4277
39304E870FF370498B38390E4B6EF35FE33BBA3551E9110F88E3350EA599F795
A97010FB5E1C5F431D8C4D30395E820C073D939316DBABE5532DEF7F31AB310D
142D4D92D33D1E1FF0BC4DEB9D4EE635A1D82D1F223701300FDBDA0D9726FF81
52B4D08AE275DB259DF4E6F5A57DFD19D5478577BFC0A439F8CBB9420421A173
A340B791ECA3E20E2EA4A94002BD307746AD707763ECD93A74D70E3AF7B6593E
EB5E51022BE4FC951B208DEB4D50F877680317D92D82E41D09A3A942FA58614C
D92638B19EC116BE59F317E2A89C7336758C09B6D6F0654750B2494717974B7D
9156A52853EA4AC717002B4AB14EC2F0D342A564F316FE701AAAD66577A98DE9
7BD95D79C94B455F2FEBC67DCF1AA13BED9070C84A034CF71900F174A892F1DE
07FA0962F4D4DBE6218ECA0D850CE36A032FEA34CF586894ED4098C329D22BBC
873A4D3E1E0F7B409AC845826E7B97EAE20979A0204F871A4258B2A9D7D66358
5F8D98F51B065A7C19B7864F496066356FB0058F672CAD2EF7D8FCF2B20CCF7C
A0E5FCAAED8AC2F5878281CD967908EB066D4CDCF37E718AF18E3193362C8FEF
BCF05BB5482A3C07161F46042DE745A087B6267C9AD08DEAD38D8EE4B1DE0072
D466C1903F5AAEC9BC9B3B51C4764CCFDBE0AA15944CEEE3693F45192BA69C58
8548BBEE3C17DBFC0983134A7283E1AA3702D8061D37C1FFB3654BD287DEC66B
9E2C98E3FC22983037C31384D5A1535EC1DD3372C52C830640CF6713CCF39A10
B96AFACDD58D72746F77CE464A2ABA98164D4C16A4EBE806FB0347B15F649FF4
6574B0937E13D95464D0B8422C6F1AA593D0F5BA17EE4DF21CEE54421A2B8048
7C2944D33B59C870C7D99048458FFEF2B65B578D9F6B22B600EE513B09A0873E
812489E9517C57B54DE15B0364A5D957CB1A6E3190F677690AF1CDBEB3333F66
C0DDFF651DE34B445278F3852FB1685E907589B9C64053DA1FBDCAEEBF6F35B5
2784F8896AACE8625F3FD966CE3B12D65457E4145986868060142256BD5F2FEF
F1BD65943D9073E8EB7505D378EDF82079505DB83880C618C1C0F1053F0EBB1F
934E098DA2EE6939C78DDD5042AFB46ED178C3FBAD86E9CEB5D9426AA5F3EB07
41E63B7D1435820D909F88B0DDED2EAC816FFCF6A0581496C19FC38FF150E189
384F0BBBB2E36BEEFC5EB957973A52715E75EC0F166E7F306B416C637B3ABBF8
0801BF7F4A96701BFE3B6124C53DB3F04A2AC3EBA881237DC2682640686D9E79
DDAF46892004A01D98A5374B94133033497C716ECE92CD09304C84B6B3010D80
FC59F530A0B55A5E8AEBC414EE3F383F792117219218F2BE784B9F7C410EADA9
13114E53067A2ECA7620373C97EA030401862CB60126FE1A06BE27A73E72022A
414D8B3CF5AE4B8A43C75CC10356345FBE5282C02C818634489A83B96A13EBDC
5652C5F5C61BB0068C016B2B47F2624A838E0D7A58EAB3EEA8A22745A4FE9AE9
45D27737D5DB4BC86C5066B3BBBCE12C1E5F1D806C9747F7057A11C9377819EC
6CFD0B9D05F297AD5762E6FF949127F2601E6EA441287014E8DA3403B3B8D8CA
2981319A5C9E04802531095F87651FAF1C34B426A6D124C5B6A78A754E5FEC2A
7C30301B9F3D813365FE3C0E2897AE988C4749734A5B551B90C458CFA8B05880
F85BF6C18A7A80DBCDE9900605B8EC271F7DBB3195CED193F508A71C651D94B5
59FBE81DFEC1324F52D37A78E141F28E4776A835A04C4A7C5453950EC31161AC
807B876160EFD16B0565D96B84052C2CBC4CD69EAB4FC15AAB73002EC9CDF085
CC742698C7F97CCB530A5319514F7F6DBD9D4A6983EEA64019CC6993B2F07653
9CF16669A7B0420D912DBAFBCCC16D40C2FBCCFCA66559C9377B57D1D8A1C5A7
B6A215A8753786EC9D2A62AD150FDFDF435D68FA830CE309B1C604E8F72B3DE2
910812B26EFE029CFB0E445897BB4F4B6654D7EBC043C37A6B09F2435E446A11
99267D37536B4D49A6726442AC509B6372C721E99428149D8866C5847F59D2B1
0FEA31B448AA85696DE3F50A98785858E1E391F2B6C8C92D60ABD867D21E085C
BF5ABC84D6BDF625389790D224DEFC37685C71CFDC778ED21FDD1C1F5F26378E
03E46440CA23D4B5A5569F9C6FB7205A148D1078746200CB71EDD763A662E3E5
AEE719A86C0495FEB789714B006D0B5D4F5F99305FE05031F56E6FA9C6C6E769
5FA248053EF6032DD68C6CD9FD4D3AAB4F75B5B0A9F11B500C026661828B41D6
7192DEC3F09FE646621A9520E5355AEC6DCAE991F95A0EEFF84F37BE5108A49A
23E3A5EC91E97D2CAFFF34C6584BB95D53E2978F511D85EFBDED16F38CA08C71
82359ADB28E0EE7D4E2D4F4DA02C5F9E96949D212E342C457141E8EAAD32FCBE
401C298A81DAD863D37A83DA6F09568FA282E8F693FE86FF9A333928330EAF43
C00C03B5095250E0B6F07DB4CE8252AAC6A75887C78EFCABD490B9C3FB742131
3DE511B62883EE7C51E083ABB9C41655B67BB35C7A8B1EDD7E97F947220FA6E5
3D566CD44321F1766661B5ABCA408BFBB4D91D827912888A4703CF76794D3190
D5D34946595C34F2C61D4A238AE4A1BAB3998CCC93242121575EAE0B46B05232
E488953DE2EB49EEF83B018311347E503F85A5F5127E6628BF292717BD5926FE
B02C14E51E85E47B8760FDDE19F47DA87B79CE7D7F5506D67CA5B96B62565436
27A352E9B5097748D784841844A3ECB4CF1FED2C768A551970CD28EE51312939
0D0F297778541527CC4FF1327C11DB772EB0FA75E9FD9CF0CBE34CC054B0A047
5376BD1C3BA4C46FAE974B969ACD0DB38F5A074217BA8A5D50F92978C1591FE0
B7E78B6994A7C7946D32FE4ADA94C440AA8ED27F734FD6CBB6690A83070E4478
EBB45F776C0158171B997767B0897825B6F405913F00D4F049A2EBCBD3703923
F25D69FB2C17A56ADFC141EC7492B059B868970A9C1A664F881063BBAA976718
EEC85F5A098DBE27144E6158DBD868AB54B5DB6272B812FF625388117573FA16
41CD65B2BFD067CB8586FB82C1CB962B102EA10605D51E5363BF2C0F5E78BCBE
46EB1143B437593CB9750D22C7258A2CA493F1D0EA9209CC8C9BB1211CEC889A
235219F4541E3580401CECE919A058496061D52E32A65BC9F1ADF977D38FE0E9
DA607C6B4395377AD80984FF97F76F3586869C779C55DA145646A42F1EFA9942
45FD69D9427E7E597BA3FC46E15DA7525EDF3002524BBAF7EC45E5E1424EF8FB
A1C50EAA50F0EA1914647858D50C6D1E884C00F2CEFA74B276DEAC45A1DC0620
A344B38DB019AB85BF75EEDF900F63E52EC5A6EE163885704B21BD110BF696F2
7FE16057259338CA438D9E8D55B6FC398EF665F2A87F904309340D2CC2F363D1
5F47C3E0B652BDBBE765C79EEF0F9F330D7AA52FED62FB75E722CBDEA58493F1
71294EC030A00DB79FDB15E887DF48A252EE19934D8795994FB5075553036F4A
399E979411A4B8592579CB02E8922100FD9D5E44FDA9A2F7441B756DA9A3DCA5
6E1EA6CD13FE1265699E1C58950E50A1DD0EF4B63F34321448ACEAFBCD690B34
7BA272AABAD65FF5F23473572AC63CFBAEDDA6F77F61AA05609B0C5A17AB5E46
99040C4F53887189E7D92DBCF1C938FC0E7E49464B99571989C0699B50638CA8
109387E9E261C42E5DB3CF7BCFFDDC1740C0B0A72639993843BC107BD17C6D91
EF7D42796C2E8D929935FCAB0156A53391A19D5E614CC0CB746586E6463DF45F
E104EABF39AC855391FABEA6579A81B513ABE805539DB4608A1520B6B8437AE5
521FC7F57B54E751A3533F6736085B6090D6F3A269419B6BF88B70F371E0C11F
F19197AB817524BB0DAA570E8C1DE64A42C7B035F48B55D1600EDE794DF8BDF4
B02B899C174F23F51E9D2C0AA5E84C21ADEB93502D4BBA32016E3743BB46DC9B
8ABB9196B032A7B8B69ABD230BCF7C64AEE36AD02F3221C29855F0BA0502E758
6EA6A3497C96D39E26DD8DDC8D28FD189F3B463DE467A2688DFCE954D656DD5E
9F704B3AE83D54494F4B098ED8D3613FE2FBE1F081CDD5D958E422FD2299D5D4
705AFD7CA39826D8CEC1A15153137C606E543D56A354283A05BD835D8B75A97C
494CFBDE7F380CB1921D5EDB1657D1D523A56229265B8CE50E3473FC0198B332
0225B4A80F66EEBFA67A206F3E957CF45C27A9D6716EC95BBF1D31092C4E63C5
FA18B318F79121C1853A312A40DFD2C33472CE1BBB9D4883C200030046E22E66
F9D81D903D473FDD7D89B53EC90D46B6A3575D20D5B2508653ED127C406E6D30
5B8B645F3D9F6F7CC5F558FCBCBBE14884D728AD178590BA6763D12178FB3D8D
02B6D8EC7129E660B9F09F4124600B59A11BC86B4BE7BB0C41DCD7F0F781221F
53FA85AF506AC9B14AA8AC3DA59BED46DB912B060C4FDF6D9C64D044413C20AD
F3315050307F4DD6CBB1DEDD8A6BA3E322750ED9CE24A05A232D0C6136920E66
02D2505112E27BC941D5B1E5387E9F5BB3304DDE690869E29AF64C785C5E3D62
C89884B33BE900C82D8F176B03143D0AA6C12037C0C5D00F1332C39066393292
67A6AC38D2DA8CE233F1ED79DB8A7344142D3ED4D1DB908E7FF438FCCD284A46
1CB6B7A931A8ED3A95AB4544C32F6B926800A4495306640B6631ECAFD8015EAF
0A8CD19E182FADEB39A352279D078C286F463E8E2FCFC343FD981605E007F373
5DFD47D89BE58B1EA52688A8E5A70AF8947D03CB4DD65FB02A54572EC42788C9
BC9162777C5BFF59848C68A32A695379BC7851AC704D6077C3CF645B344FE346
B43D021874F88E48C44B198F3AA640D6B4D07D0C01422346E942E740AF1A2CDD
2DAED2AC71D14AC4CE93ADB4C29067211834A22083CC124EAF2387EBCB67BA9B
4F8157A32AD3C36A661901F46E3A6A361F2AB8104ED41C10F0AED353F82E88CD
178C20D48370EAAE89AC5FBA70EB1A677E22DC6D98C1C66878775D8726DFBD86
77DAF384115BA504816762815440F827AC6307D47DDDEC3BB882276A4C72CDE3
039DB4BC61BA1D516BAD86EF167882DD6470DFC4AC594B1C9346326ACBDC128E
BDC44FAA974B7C7A68B18F3AA739735095E139A828F6A9794E655E32E32251BC
03284A1CAEE8C5FF525963C62AA85CDCB10295D36499A1B6D608FE56EDA392DE
428A16BBB8B8AA41FD228B700025048162C6FFCD6395D3163AA8B046BF8245F6
0DC1702B5B965ACD3D1EB3688B83DF2B1F88BB56315B00D7CF95EEBC70A2A843
99A2E548A08B50DEB5682DE268D69278531D811ABCE46B353438A581051B531D
31B2B4AC3937B38D8C72A7A34D8C433ED5CF47A79CEDDEEBBD33338DB9C1849A
15ECB0017CC558E40D011C3E7FC4BA01FD77765A682803817CBF7C65032996E3
16C629AC7DA824119F85ECDC7F47EC1F0659741B815981E31D5058B8E599481A
C2BC0E0FC72D2CBDB685DF348FD9D2E70A233FF63A825B9D6D8A77D7017EC905
824E4A58F7AC42456FB6408B4890EE36A28A20C7E307802829DC4F343E695EE5
05BB9485939090597D73B0CD4D1C63D2B8F77833CC144F81547C97CF6C6E59D0
966A1F99C25A1F264289CF2879AEC1D24CF05ED3F7F66D272E083A07F6E48C08
FF065BF1328B3C0B28863DF63364E1A87766A0176D653F470D3846D0F140C3F7
29E3274686D4D27873FCBE98B63FF818F68C562329BBA44B45C7EB265879C46F
2E3EB4445B5C555A41FA2FBFD0518A6BD9003AD6CBEF95370724C005F767CDBA
82CD1F540B2BB11D42487409E1A94C889F6C2EFED22AD45FD6B9F474734A2588
FFFBC7CE924C0AA0203C650FEE9EB8DF2FAF504A69DF806A5FF2E9F188C6BA3A
8D310C965C0BE65A86686F40DB840FE362C3F02ECF0B4E434A42B1654EB6725D
A91FE5FA2297E8A6D13F39374971C74741021F175ED1DF1165FA6EFD46FA53FD
7FE594853C7994BDFF6585A442C852BB9BE1EFD291053800499A68869BDC4B06
BE9F1B5F34DFDD5423205BAE594B228AFCD7A02A7DBFD6BFDC537966802AAC76
557F33B2BB2E65383E47550128255D57B3345DB20CCA21022A2254A10746F9BE
7C8CFF12BC7B11E257DE271B9529EF11684302CFAAA408D14E07D3F43E87C921
67966297628CFEF7EB17BED748D86B0562C724E0AD598997FCD4E0C8BDD01466
74B313A923D45BD1174117F8D7C217662E7E816347B4B7423FC3FE9EE2D08D7E
617616E73546BDA9AFDCC1A2B2021D5284BA4E63703CC561FA1335C0E00C0C27
9C92661950C09E9F4B59C87F01EABE0F01D2F163AC0DF435A6F124FB8A630C21
23CA2934FA3CFA94159685999AE401DB8FD5FDC9DA60735211433E3E69BE2302
CD16EB3175A25164FCA39B47F3F72577CFAF2BAE6C0CCB125C71649726B93DA9
38C27771D07D2E4980E740170C33DA2E0A2D698C298BB794F98B908BA3698924
4D33EC640F894D34F064F8C2F81515A2F644D25CAA25B91A0C5ED8D9744F5EE0
17CE40D0DC11B251F7A7CAEA71F54B41F3A277AE005D028A03E0A110D535C3BC
59C82CEC886BFEAA83660B0C590ADC51CD024905AFCD28287ADC21BF294741C8
7A762A0A43C0AD9BF35351851B3488277BCC9519AD829943FF12766C18587FA8
7D424065D56B6BFD28C4727376FEE45857CF07AC8B213750A5928DA9F51AAF91
B98F528172C849A5C4AC2E0241B143BE4F591156CBA4AF524B5767BAB481A4B9
ECFDE7D8853C6DEFF73E084D8CB6B9C5B1C11073308DE97039F49B931F39F95E
96ADE469D84A7AD00256C63881D1503E6F54B4054051D7A923F33D1A1DCBCA2D
370AE0E47051DF67DEAF43D419A37679468242D82CC268AF0782F6AA8A6B43D5
77144F47B006C64EEDD7525FF217EAA2B67A63F3BAD230FF71046E11105102DA
B71881A18C0740C6C8FC7D873C0042BA058B7428F19ECEC280367DD390B98A6F
97919EFFF172FB37D13B22E4DE85110C3E15D6808C188D23DD2CA4BB649A7F85
B8F09DE7CBEE14F7592824C0D3A716D21363A1010ADE785006296A65EA3B3276
4961E35B7667F15A5B6AC7634EA8FBAD1174B77D34B42D0B2247755AA41BD7D6
BF2A778C9BFC0028865874053533F02D7DDDFE72C3FBDFECF786ED429C11440D
64B73CEBF5C78E24517FFD3DBAC8237A9AC95C9F139A15B0649B95D717A1D065
E3AE510BE44A76CB1FF638AC1CFF5B7DF84D25C1847723F98E0EE5AEA79D5209
81E56182C055FE925591A7BFCBD7DE6114681EC596F17902E623D818531EE897
EEE614A5004DE61CDCDFAA5292DF1D78E64BF4DBF6364D0D98C82DEBCACF1258
BC269B8289B3C26C021092B832A7AA8444064D726FA577EC8A9543C3E22D70E1
201FB0C4A6EB92711FE8B74648640B7229C664C6476863953FEDFA61FCA6B61B
8A0E6BE2E940E339A6320B59E2D2DBA1D3222B20C3EF9E86EF3D7C2DFEDAF2C9
A1799A0A00081F5C892F463D594771D41E7BC82B50A21F5C70DCBCE8FAE0397C
61AE3DE728EC98B37F8D00627544242B49758AF72F86E0629AB4F36AC843E1AC
8E5A45A153492619560DEB94D07C14A13962D306BCA8820AE2A7BF3065299D10
D2452AC21313295B1F8854D018AB043E94E5DD91A9D303E84BD1CFB8155A57F7
EF3152DC68818DD3D49599CFFA940F66975E1EE3A986422781084BCB42553EB0
7B8D07F043EEB5D64A783E97E00B4ABA5DC71D96C12C70314696D2CBC9BE7E69
06F4F7DC66AACDF880EF7B6CB03D0FFBEB3792FF60DDBB41DE6EA2445CCBE02C
ED01E467F871F3B4D5D9E727F15940D094FC352CAC699B5ECE627223604E1CE9
FA0BDDFC442153906FE3AB2B6805618AE96E2459548E99CACC3CA74CE3E61EED
3B4257D45F6C0E0387EBA9180E97F20A008366FB00304DC99642B9028E76FB0A
A3BCC20FBFED87520F9222775480775EB3BB6863A31045292FEC310C613E9C6A
58827863BFE453053E2763EDC20B26A9B5AF831A09032871E52A09ED1D3AFB09
E23B224BFA8E81B537D57948FD483CAD2FFBEDFDD8860B0A06F4A29D247BC4B0
02C5F481E41457C33BDC96C5AB95C5F6743196CFF0AB7B8195D21DB23F1A496C
369AE94FC5ADD1793E2ED5D9D145A393DF5F8E9C7A3EAA38BFBD1511C314EED5
FB80A6B9AC031DA9191C17D3084657AC59D55C9EBE2F3911A70DAA686AB0B674
F80509F8DB4C19D73E9E1934B985BDA0FDA28EFEFE4AB6520AFA6A80F57A290C
4FD08D365414FDCCA7496CDC732EF57688A905FED48DC437C9D5B35F5FA90E12
09C76181E46F3F3D6CF13ADC210F9D1E7BECCDA389A7EDE5B853FD1511DE4999
AE2C618C90FD0091280CCA97C7AD88BBE05048DDAF073D053F1F2AD6EC497963
D1B1A142068701516C4C5A5379DE0B705AF66CD9826122CFCCF4DA25107DE722
69B24AB136F007FBD123F1469821C4CEB7F0EFEBF59B570163E087165744392F
8F15E42F8A4F27C595D8199A68F201D4FAF2AD3F3C1609F396E7E88BF2E0A063
70A4A341AB203AA00F1FD8F3832B592CF4A2F31A2CD6E764701FB2676F3F821F
75BC152843C54B88276258E85B742E336311485E47CFA924540761F4D07156F2
BC89C8C6D457FC9192E4AB8844411B969542CF2FA1036484E97601135B974965
613F093F065ADD33B3A2F7F6BD0E105B30AEB8765D3D0BED63E59BF5DF755B10
5F5CD695395885B5276D2C8844456A369A92852E2F11C61C057E4729F4E7AE98
009A168AF0A09698E50FC0E018B501F58ECC79F20AD02182D1EDCE8EC485057B
9B26CC02CDF3DBC6E9D037D5DA3A8EF039AC71E81DD27C0059CBB777E8141E00
15620897B284EB82855DBB86E5BFD2AF3AE660A28485D63C0767F44206D5B4B3
DFE5F350264A941DC78CBAF09CCEA36EFED01C421F5B8F43B63EFDE8A0BDFDC1
ED4277EAE2C7ACE414F33477E78D899D3D921FDA1534F3C31AE2AEFB9C46BBCE
798D357B012A4516513C8851C0D621C5286DEE79AA1243D61E3BDDA3D2605BED
CC2658DBEF824427F415A92C7534509C5AF8080CC45E50EF93C7955444885FF0
1842ED76FEA519B161222855F8DAC881BF08FA721BAE0F20511ECFB97A417411
5F341FEA682BA29C58862D27C5243C83862B3561934F9EF6DAF099B0C5041110
D3F41035DD586F5B5C924696CC3D58D6F13A634D8195ECE400BDDA5FE7224541
9A41EF7DA0E20AED33E672F052EF3DD175D27B54B59867029C5968A6A495472F
40888933E67CEC9113CCFD01AB82B85CE26490052785C80DC12D56F6978966E8
EBC9D9954904069569C0B9BF17D85DE040160B3D0BA6E752A81DBEB72C19FACF
6371B56100198B560639B120D5D97F0B0ACE75FF1CE8337FCF931D6BCDE69DD8
A3443D89D50EB703DBB4FE76E5DC441D5CE9C499B99910D2CF7683241B53E38D
944177CAAA960DF2336DFBF4C4AC9D6A9A0CEFBB58C68BEDFD1C932DBF82DA95
808D3BCD23290ECE9BDBE563E4FF1BCC3F620749167E55E75970546C059DEA17
A5CEB8AF137159A3710559F0FFE8F1F135F50EC44AC67590F81ACC9C73DF653E
34A8F348261ED79D97831B1F995ADE4BD4B1453BC4D3A29AAF0250766E29CBD8
4FE1AB8F6305229D90186906C842461BD185D13AF07EBBCAF5BCC86E5F781515
4E6C1883608A46CA3EC125CED7747CDCE641F7010A0F2F1DF1487C1A58E5D96A
A034C4E6D8B7790C3AEE81A21D7FCA6192FD30D7A1AB7C550ABB4EC69B602630
4C1665D330F83887CADF16E2499FF5E03E016F08A9378DD1C7DD4C6EF3DD16E9
35172AB313DD5867D5F24160FC2FC238D528AB4D90918FAD3C33351457824570
D7F7ADEC2DF8FB37279E3B7CF59551288E4C578FC6D44001C0F43C0560B15C06
EBBCCD647CD885837CD7A984BEF8A1BA9992840CB574050E46011577D1C1EA03
B30434C6E0FC891366615643CA95DB6FE3753264412019E4E9CB3289B122A98E
29A96C7CB480F2DB9BFF2AF747158C951FA195E67F2BB29985C724E0B4720A2B
195E40D026DB0386CD81FD188BB1CBFB478CFDEB27024AB44BA94F5616CC869D
AC590FC25E5D55A3C3C9087E9747546D53074E84E589F2A258FAE86B2765E29F
58EEC65C4E14C6BA9DFE6B69D2B9A8F6B7AC7BEBF32BBB36D58F88665557767A
60932818CAFE4ECFD8145193B94A6895C1BF706898ABB3B1A83DD632CA39A988
B902083CE6973D882270E708BC32C5DA990510F4E7664C05CFABCBF629280912
BFFF18DC7DECD2D5FE955AEC41DDF0A02FFD677C1FC3551CEEC21F4BC27E9987
39369EA3C053AC302429FFD994F6DE9D46B7822DEDE4C0529B67365F3ED4A91F
465DCBAC74798CA72BC97E335663A4C784BE874C44454C471F5BE0368A8A02A7
65AF7B3C73C561AB8F6810E13A8A82E16C7BB3E8FC5E097A4DD59577C3116737
70BA88962F222BA64BD6E6DDDBEEA55CDD3367D3CE50EE4BDB168D8DA86103DB
92B5AEB2CD31E6948741D6C8BA45582134D030D435F0955CF266B6BCDDB3393F
1C42FAE93D2600C140BFBBCACDBCE22B05F5808DC5884865EA5B1EF52BF4E060
A535B364E904D87B0C9525B3472D12B6D8AC3948B9C7FB73C44B3672BEC1644D
52CAE1918BFB72F5F6F00C8E7774AD04163BE416C86D85B1E8037635D515245C
45D8C026FC8DA74C4959F05B89650CC7E110D3C38712FBE39117D6B08D27357A
085F34B338C00B83B67F28A63D3A28E4C991916EF99E503F59A9093E15522DD1
F68467A4C666838B3A7AC4BCC747F1C3AC70832BE0453B6E91ABB3F6E389A218
227DFD4DAAE28DD8327506516F03690D9A9BE9F8CC74DAD0BA3911BB73CE55D2
D4CDBC8A3529C89361AF2C19D9088A7C9149528903C1FBA7150044DABEAE690C
625A0C3C06CAABF0E63FABFEB886CC081B74880CE2ECD3CEC76A3E07D8DDA324
5A4F2C019A75BCA73D24563E43DC7E0CE309F430C511633713C4A44A8A8778F2
41244B6F1ED7C40734091BD4D24838ED95CC89DFF3341A41A9FB5B50DB2C8091
DFB54B1C6CD13CFF0E64BFC34FD6289694A317C7B1CE1FDF4B356069A46362EA
13D5B5C04931C50410204D2F0D5902C7AC6A440306AB2E2213A8B97D6EC44F85
638BB9ED52D84BA503B2DA58EADD5AE5AE1DA863EB2FA90743C164D72ABD2D7A
4B6A83240264D680FC0E3D4A2D22185A6717A68BA228F7CF10047180B2E990CB
EBF4FD3A93AC822885833CE6D6E423D04CF9AA9A8541C07C12F40E6C08699C92
751D1FB3E1C74C53BE0FC2C31115ADD4BE6D7BE04EBFBF4929E0ADF2292C3444
82E1B5F0652CAC7625133FCAF16AC57825DFE6EA13C29781ABA56D7CED773F11
AA6305728C9572A6718256E16C663C3B96ABCB75DE84D36A43E48DA15F4E08B9
2558C9B13EF44766DACE304621AF3693F4A293220B3D115E3EDA7FC3E29BB7FD
F47B4E5CE1FFB6679A8C9FDE292BCC8A73AA06F5608595F3CF699F7DA37C0889
BBE865C17BCD28F303EEA0DBF8F252F5397C08B4800929061986E3270667D819
2F7E4634E92233245128FD071F4C6ED386CB2B3ADA4BCD89766E0148F9996D26
31E010C763AACA0288AD49E087EA84A1F637522D513408388028C309FF76CC84
CE6E08B726FEA59313FEAD73A903B49E13B0EF3ADF5D12BB4A64BCA7DF411E79
1588C97B131E7A69F9AF380B76705B71F8F31303B405AE25CC8E79C3A4149FCF
E52C95FBB0AB794E19082DFF2841D1CB323FBAC0C863D2506E7521215DC433DE
E82408B4735ED0602130F370800601F22B493CDA1F66FA493DB9E2D0504B99F6
60ABBBB6A81228DBB346E6EA022E063AC782D4C8C918D6E3446840CF0CD6CF1D
A7292E8DD8AF44855E43CC502641276221D37CDE37C866F065E9D573BC808A2A
C8E8166EE04441891A2534B75DCE1F2F0A5635E7C0FFFC8452E7BD5138A385BD
6EA358B9889B1EA646884891E32637E4C970A6AC8139B6B6C9BDFBCA2ACC12DE
1DC59D5725B4248A00F865919EDAA56879AD60B119325D262A949AA16D9CE066
F30A746B4C0868375EA6A90A55C732A4BADCD25F20D391450D0918044A5F6F17
57EE4C824A4A09D9D2AEC1DBF4F139FE5C05EC945A76D34A1FFC149D72309E21
842AC17FF04B2294FCFE4EF7CB403FAF79F10EF4E14392289E5088FD604CC366
ECD34C60318485FE4A1DD498F947920918FB22656A69B13507816F18E78F07F0
9B96A727B9A801A7AFBFB9E27E786B1DEB9D4428E4D4F22F5099AC6878FA9AD2
70A6C3EB7061C499B13F1D5038B99C40B2AC6FC7A6613F18324691749D2C5225
B8D11DA009EF05068798E606AF6F8095E136D39A6CA2CCF0F3ACB47BC8B00AE7
D95E35129FAE24A82367C833810DBCB56B881C9C1D05A54E5F06D43208CE064A
C0AA19DA00A52509F86A9519F65E8DA406335F6D3F999A541C01D0F80B8D014C
FA2463BA5F7946018C51519FA0F00F04B0AE7561F385C0D554E581B71092A32E
43FA0C5680909167ADA2DF8F4967D0F22AC54B66A53AC12C86AD5BF810D5B113
85E604AF8593DEEAB11874660AA281B9480B43858C52861AD530A30ADB1E1965
EEB3F901CB6745C671246EEC8976EDD9DB867272E2E18E8DBA29C0A6B887EE32
18C051D9D7931BAECE5B245918BC0B92C1FC6B1B12319EDDADA4B7B971C74101
A06297B2FC9A88A7E9876EB0562DF0B1B9025023D143A8BA76CECDE6B80FDDA0
AA788334DA70A84E6D1C469B2C434DB0F6A5B01E6326544F4E72700944F58888
B65A2A4A7202C7147DF80EC0388C9B8B92A4C7EDF9300896AE062E267AD39829
5F7F0533DA4C520766D267E634A7783F241833BCE1B388C36C3201BC791B501A
E3A4074A58B4BB46CCD877BF86011A0C4FFCE0DA37CB189C463719A8E124DA69
511E99B757B85E048BDE7D7296F6A41F51368A23EBD6A8501E1DF4B4179ECEF7
28795EE5647DE1F3E4261313A9295F0B6D631B338D0CBD3E396126A869BB365F
49E800DF436FF19A77A4C573D3C54C937BDE2ADDCEB58C5E5DE2C4E150003877
82A28694CF49CA06E6147CD2660A4E496AFA4318FBEA19005754BD10864CBA73
8C75F3D34028BDFAB217AC7A7A66D3ACE224CA88DF54A6B95B38FC4F9E0193A5
850A236F1E5FC07E7EAFCDBF44878AB6238A364E892E516498BA14BBE2D975DB
C0F6EC2EEF36F2B82FE9FEC37F291FF295346D5DF1568759D866C7DE9A120350
4ECFF375DA04A9750E456E06098B4CF105559055F3A55718696FB27BD739B84D
CBD271B96A4E18A194BF405FABD3B87DE14B4C8E512B6A604C9C603B319D077B
455E7273D98175AAADF8E16D4F13BAF38E3BF979E15777EAF5594F49AEA62F8F
817AAB87BF3112514FECFC6BF40CFE5B8308CA742A80C768864037AB1925A6F9
FA6E099D18840855370138D81AADF2349CC6E70513D2F3061D2251AC44C0FE7C
4928F40C65492C9D99D75C62F00D7528442D0CD3E40C3E55B52C3060635C48E9
BC4CC4D377CC013ED585915066B4CDC181418C0B7BE16F9650854B1337F37854
70B16F0B15932DE95013F5B819A24FAB343F7E97AAB9EB297B8C590ABB182970
8A5AE4E8E661945978D561C60F2F80D9BA885D826CCB5A55D5CDDACF7AC43B25
338D4B76AFF430A5FC4C8701905B210145D4F457369C949B2C8DE24FF5B8D3AA
024199942B5553733C660E2AA1EC497F82297B8B6B0E20A99E977CADFE610432
69CF7EFCE73EC933F0267E375095C1119A75880D04D85885219EEA5178F07D61
899C6720D9510CF1F905F99AA0ADB6C3F79A64093BC4E80C2568B550CD5E293B
71272BF19BD6048F481ED55D9C468A9545E1B82E1BD03C34E4DB2012CD790301
C9542FD0FCAA86C1595390483DFE3CEB3137A0988CD775E830C0651F0A27678A
956C266D1F560F7C9A50342B24B66926D513F1C83ED76411507A44F789D1F4BD
9354C35E6EC37E79D4EC849A897FDCC148125F1CBCF15705F7A55CCC0C463D63
F20F3C0E17CF40F7B2843546B1D5E6E01DE3612DCD3025261B71319414EACF39
75CA9300F9FF5CED10253C553F7980224A641089AD190C609A859C2FC5D12E01
DF1DCBA866262E83BFD1BF3D51AEB7B36C8E48564E95EFD916B057507A168F08
F697404781C0273A22BE5B9A49F5C6B501598BF3B65E93E6E32F6F06A1337FAB
AA1489E91409B55C402E5AB77D7599711A92ED8BEDE2A490177055D434518267
E8982F3B6CC070A49E31FE6A217F8C1C72CA977CBAADFB7A09103347720421B0
DDDB547DE1D4366A4ABD5DF80BE75B73224DA6D1F5BA6EE89EE65F729FA56CD9
2BF024F1D717DE02DEF29A949F01102D2AAD1EC9A411C81DBE08D4EBCE7BB06C
2DED949FE3683AEE93568260E30416358D85BCA08A050D18DFB70F56075D9716
4F46469264375A6AB492C2BEAD4F92DABE88C950092FF272042FF2FA21CD9D45
095C72F09377CA9F623AEC805BA8FD52C086DFE0AA46D77309A78E460B24DD6C
E5E511CB2BAA4B1140B132FA147A7A7E4726CCE3F6060324A530FCD06A72445E
C29A0E6F302A19647593F0F130F19B244C6F7707524745428D6E7D8B8D24DD15
196F7830DE63E95D168DFFDC112031F29AA5E765ECE79B8A0CE1F96148A9C245
5A4947F1D007263A8ABD2330C62563886DA76F7CD87638C365B043A93E87EE98
F2D27C5BBC93B0CC11A666AA6ED0F95A9891938016ECFA4EF16260D28995EE47
504B17E67F1DCEBEE1C56F473D8CF286DFB9526DB732B12B2105C613E1C777B5
8FC7F52B8624B82F45180D446419361725705E3A9006271D8C9068F5522EF78D
5CCC445F47EF499D5911A3665B24CC87E506BBA233D6F3C4F5225BA5B8FC06D0
C86D1FB8F95FA5E76EB1DE3154760CA228ACD5AE6B05C112C1A81469A16AFD08
E90341EA2823613A21DBA8CFC9C5B470987A4350512FC5618E2C658537E102EE
3C06AD4C8462E4A9A8AD7F09CAB3CF7DB17E4E866EDC2E9079596FCE7C37FDB0
BE98DA7B1BCEE24B17E3E2B9784FDDD1EDCEA9278AED38263A53C2794BB7786C
1BB562C5528910591E938EC93F03B68C778285626FA2903F4EDDEA811A1506C7
A54AE9B0B7E7967BF4A28DE6708A2BE277C0638C919ECF957250B6552FF939A3
30AF274DF310EF7998A8AC86B74A9EF60A4322A681B81CBBC14B41473A082B26
1E736360BB164F94A1F024DDF2127667BE95143C8F2FBC53F986D86301241505
70FF290F6BCEC76265E5BE94B1128CC1BD9D9339582385E6F14F0B0B432C9F59
D1EB8D6ECEE837937A4B71A12A8CFC9C1AA9EF3FDFD71614F310E50516F0CF6B
F5A365053C5270397145C6E1638F7E10EA433A1340E5A37D9DDDECDD069DF24E
DFCDA05928753746323B9CB0EE82A04F86750F36444D95C13E0D627DE5A8A2C6
4E2678B594693CF6A615907673907EBAC541C1739B69B3CAFB3FCF8AA42D7B50
E44D017D417DB62E4D310F918667FEC8B2929DA904FB3FA135EA5ED25ADA9A2E
BCB26222F7CF0464CCC67641550CEC8041E1843C6E597502E7797B2A5A2C0C37
0E241C8FA6C45B6D2F6BCEE594D2101E27747A33B51FFBFE4B0659263BB49EFD
52A8277D33DAE63725EE2B419E9AE12E32B8E8F2B2B4414AB988ABF2DD310C4C
E9DD2AE2351DE42586443A19A2FACA7B4B318DFD913A23A32B535E2E0D7D8989
769FA7183F0BA53571916F16FBAEEAC5B121F01E5E3F7E6CD9D39CAD84AD6CBC
5C17F524173F2A95B075972E6D3B96941C8F195ED59AEA0F26B8569855D860DE
A60D5D02238292A5E8EFAE83542C9B56FFCA6812F24C8725F69CBA0AD3C66EB4
EDD38AAC4337C73BB998D5BCBB2E6FC9F19158A166831AF3635055EAA1014DEA
1B6D1ADA08ACA143B20421C3B64F9B4EA66E24DDB2695320B062FD6855EED521
CA21BF09BBBF3B823FFFE3C05590AF9EDE4BF6424EA5C2A7EAC644884F81A5CD
474824C8BDCF578A4657DC0BEA2AF7D18AC1175CD3C1A2591EF04FF6C7FD7164
123EBA4D645536283838B58C73465712D64A8B72C16C0C0C673ECDB5492D6C78
73B7950FDC6F2FE3026B485993A137098C25AB18569636D9B13C493874175B80
1C5FBDC1B47A376F33DECD9661611F49639A08E1B3F795936D69EC15FBEC9FCB
E27ACE05079F48790BE8125413935F30DCA510D67E1B22D194CC1BC37CDF962A
CC5936BCBBE0116949F2BD6948EA5AD013D1EE5F7D43EC9D2353B0B4B28182F1
82DEF07E1194C50287CA714F13174AB05C8039976AEF887B5BE31C8C32A69669
B150F9A5B141702B599AD475AC67C1FB47715D3835607F7D031D848FC81EC56F
98404EA9127914E462FC0730094D15CC7C91E64B6FABA6548F33E4F3C861CBFF
CE6A821CC6943660A34D8987DBB773F5FDD049FF35A07B02E123B519F0F7C5CC
D98B7AE9A02B3DD408B7D104FD948E1236B3E441674665E1C771E608FBF022EE
BD0299F4E7A0124E682C9C62BB1C006790B3E6222ADC8A1AE1A1329C313EFB57
EC84C647783EC7AE1DACCC8BC930001C99A83DE5D4D08C310C6127D497B43EFA
53B1F81CDC9BD68F471F867B23739E7AA28D30194B0D5317363659FD150E29E7
772A9237FBCC77BF1B3DF36EA73FA28F96DDD9358E7ABF548F2028953241FAFA
0FED3752554B3FE7DFB62512B7B06B7EF2647519455D807554447AA44324071C
9CCA419EF0C46FFD7F5B449ECA6DFAB353CC68EDC2B0088C6A210632830A15F3
269B5EE4BEE60F0DA14BFEA47D2037CE675E927635F557C3FCAC72E86D3EED76
C775DD23F6179847F14D6610FEB46955BA80DFCA275D1F38A52C5D14A5B6D800
6102C7707E4403FE193F53FE01257E719D68D5CE40998F5459A237270DB56D91
7F5864FC8394901137601E1446007478B0E2F11470DF485FC5E8DA76071E3CD9
DFBA4DCB1CB37DB923AB176BFA0B6AF8CCD81AE6BAF740D624BCF19FCF425570
47DD9FFCBEF916AD3317F07CC9A2CF905873FF1B44B64418D5EDF4F00EDAF815
923A51CED937859981C4F2D80EC453E26C1DB9B624E308E63A438AF9849E75E2
3B3219BC37597E9DEE70EC70047AFD2BA3D6DFBAEA39160AE763D187B0EBD2D6
8687640C6CC72FBF8C6C611DD1C7421E47D02164D498563C04DEF61101EE1935
8B572F1E4C1D58C540A72967A6E389EA2B95F70AA52CE8FE766DE185B3FAF409
11056AA754E5C0DFAC0D810F2D81868E650F71F86143AB13E820228A397ECC70
F890229B3795985566C4E13BCA04D129F8E475146A44D99C4AF3B4BF405AB0CD
00884EE0A53CCFD9D73C60530581C62186CC522707ABE23BACFC11CFE9B031C9
1B826DCBF1016E7EC3A16208A1B9ADD7F6FB97919380B5ED99D4B3191C94321E
831B3C2D219F98DA7D2B0187358D7BEF51BEBCC21025B8E0FE2D4B076E5BDA10
BD6B2C030B1A2A3FAD780DFCF53DA3B8C208C18D86D412F312955DD0CB3240E8
52D9A86C70D0B4F578F802BF17CAF984CA858F0E8298AB3F39340130BDA64264
D99313FD247702C119F49CB3C8A85F33FF82D1E765C7EF9B10CC4C1E6079FD44
7041A17D85BEF091A75E0076DE58A65857EA987DD46183727ED0B949B7974083
328CE232C50EADF026BD1638A03B836EFB7FC2DE971056FCEF30541740296087
4D5835244775591972B931037FBE9D53602628F55E7612D08FF71198E6666A53
964DC0FC416F7D4BC0C2FEC891A74E5E04521EB5A4937AE43A318358BBEE6065
395A8785037576D9E88DF68E8E3331F2
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont 
%%BeginFont: CMR17
%!PS-AdobeFont-1.1: CMR17 1.0
%%CreationDate: 1991 Aug 20 16:38:24
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMR17) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /CMR17 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /.notdef put
readonly def
/FontBBox{-33 -250 945 749}readonly def
/UniqueID 5000795 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
2BDBF16FBC7512FAA308A093FE5F075EA0A10A15B0ED05D5039DA41B32B16E95
A3CE9725A429B35BAD796912FC328E3A28F96FCADA20A598E247755E7E7FF801
BDB00E9B9B086BDBE6EDCF841A3EAFC6F5284FED3C634085BA4EE0FC6A026E96
96D55575481B007BF93CA452EE3F71D83FAAB3D9DEDD2A8F96C5840EAE5BE5DC
9322E81DFF5E250DEB386E12A49FC9FBF9B4C25C3283F3CEA74B8278A1B09DA7
E9AE4FBAAF23EDF5A3E07D39385D521547C3AAAB8EB70549756EBA8EF445AF4A
497CA924ACCC3DD5456F8E2C7E36946A5BF14E2E959895F7C94F49137256BE46
4A238684D52792234869EAE1A6D8ADF4E138B79472D2A90A6CA99E2394CC20CD
3841733046175B20CEBE372327BF13428EED6A3E2FDF84C2DBA4B0AD584EE9DF
B51828D3B8F385846158C29C9AC3496CB9692DD10219697B2ED4D425C3957FD8
C4600D76E045C561216EF05D38177243C314877A69A1C22E3BEC611A2EE5A216
9B7C264CF6D1839DBBD78A40610F2C0D7C2FE09FFA9822FF55035AD52546970F
83EED2D30EABB1F303091EBC11A5379B12BB3F405E371519A53EA9D66174ED25
A2E55463EC71A97BE4C04B39E68112956117C8252DB6FB14AB64534B4BCD568B
246DB833982B38CDE7268BBF74B6B0C18091E1B1F87D32D66F4DD023D1F10D2A
7736A960F72AC01F733A11023832CD68FB6288A5977743F6F3F23E0C1657CF5D
E8374835BDBD2DED3690C84A1EBB8E2383A5E49E610B6F5F0F5F5EC43CFD16FF
24FEEFB92425CCB577E17FDE4EA6C50E1448DC5726A21888E25B6D6B52DA3D3C
E4C4C6A73C176DFEB60B6B6191B336AC4F5BAA123E1B3B6FAE4B3FA9DC8F7E39
335277EF2294315BE95F64EBDB1F393B293FD0FDB9DEE6C89082232013130D28
9234FF12DF47D454558A1EE8603B2832772E5CA07D18B34A4763D5B890F7173F
B8FEED3DFDC40985B4C4EFA511CE75E99EE2A5871351DE751DC177232659DB73
31680E5EF8C8282EFEFED988F95DBA95FB30B8EC0E03E1C641DAA7820071BD45
139230B4208432DD123893050F2D5225B0354829362BEAEC3383C65E09300471
E889A926AC31D8D8B91DF2B791DBA70AED4E94AF852052C74994ED3C5704AA4B
862706F0CFE3395E24B4E84DE0F08E2C1AFD4A96E1E98A8CF2D0F4C4C8392ADA
25FE2CBBBC1022F992BB414FD054EE541E24A515E7BB394F6BB3856F4C1567E8
7AEAE3CFB653A11A9A0170671130AEA361228631079E6EC96F2280BC103031C3
9E67DCCEFEC2C4EFF3792B5E14949280F7DF0A2D813B840017A29FB890A19DCF
B555DFFF9CEB02959E667183A85AC4E8B01B558893AA18C6ECC3590A321BC235
19AA9B1397E0CACEBA69FD4D8321FCB38FD8394B3698738B93FDD89CA6E19B57
BC6AB214D31E05B8B344C61B128CAE124925D775263A180866EBC133E2EBEFD5
2AA9389713577DE2F9DDCB8BE84D6F1C13B634170880689AFE665210285F4274
F2A0B9C65C0EAE608250A5FF01F38832C7ED07525CF1265957A452053A95A8C2
AD655300E9A730A0B1907A3E171319EC36AE1EE87357BDF1C26787929BA10BF8
F8494D1D9100279B0D5ABEC2E6A40012E399CF00E3997C6979803463D33DB945
E93C7EB9A6C7B4E814C07C05485C7C2D6B4CC161548617B0532BEAB92BED36C3
4244402F0EBE309F61CB43FA87947B112AF94FE997F86DB01BAC492325B69DF5
2EC58A1FC0B55DD673F042AFB36BC4008887F260CFCB60374D0BD4357FFEDC53
C7E67BB6CD7D0420F3339B3CED763F41CAACBB33FED153F0CFDDC7CEF6301392
953F87721ACEA63EEBE575AB008EB54F82FB0FDBC47A86B1A244DB378C171B79
E142B7C77DA1109BAF45C28516E3EE14FBABC81BF9E9FA9C337E0A08D3F04D51
1970DE49C0FAE3A820CBD7D987D2C1395A475961BA3D49465AEF7AB9D297F95D
60478505A93CFA41EF3AC53CCB40AB6074E95371D3ECE36859F335DCC4818D03
BE1717A7A9A22FC91F4A1E90D2D1FEDA11679D4EF6F668EF7CFAB5857DCF8342
12B97CA98AF2E07AD230F990F455829601DBF371EA1F0AE9FF8AF8B701C3838A
81C1CF729CA4BFC02B8E0322CF78318D9B9B5AC28C441D5456F3A786668248FC
8E85F75E77B7D645724E8C795CED1010AC1FEF5CEB9E6AFEA0BE9335D04A7B86
672BBE0CA19BD0D400E928A9DD371E111DCECCC8C6637EE0880DC45C3BAB5B97
7627E276A23FF034FA7ED8701E99CED814791072F6BFAD2BA17D9E8F7CEE9D04
368DAB7B508937395FE5010A29965D6ED2CBD1EB75A26DB122E82F2F6FF5C7F4
5FBB3B1909877DF2155CF1F2B6B80B01A590ADAD5BD7BCD258C2E5F906BD1E53
AC3ED319BB7B3BB65C1F57B5DD081520941E680575E048ECE72049E4161B9706
F928A7AD1F348025DD93F4460ACD306BAE1BB2AB3D383B60CA3E1647920193E8
4349F7A477B97ED27907D57472CCE1316C39BF68BB0DDBAE14DA777C43A004CB
E50EFCC8E3235A0978DC2AB28CEB9A0266FCAB15CC7CF8F24AFF92B1B326EE0E
5993A76E4248F40AFBB3E90AE7396F59D61A1F4ED2A2D88D0D8A46C85964BA38
A6015324C21451CCEECE87D67008EF9D355D8E646977C881E085A2963AF1FBD9
EE7B7F99E74BB586271073F30075C54C02B8999100A2C5CCC03F258F3084BDD2
F98C3355332CF7A4329A484C0306E536F1AB6DE62F82D24EF3A7C45ED99FD77C
1F5153AEAB8BF32ABB1747FF49BCB6ED49659AE026B5DFE3725F8697C0B7E440
9021BB9C316B5B43B104DB195E307A4E90DAE996EB98665BDBE35582921CBCB0
0F628B9B8BAB9C7F1BE87692A0122B2B68283E7BBD00B4612113E37729EFC35D
F1B1C28A7E02EB782D622090F87CCF1ACCFEDC445C4ADB71073DD838DF4E21D9
B2474D6315E1BABBEDF9AD1DBB0F70C6102CFF9C5AF813BEAC716FFEA123A447
5E57CCCD545D757118169DF9E137C855A0ECEFC2F2F844F82F3F35C64CAE9756
10A8564CAF6CDEE9ACB193135CAD31224D2D4C0A173C310F96F5AA8987B0F499
1750A66681EC9B485973556F022624AEC6D6DF09A1CBBE2462AEFE83988D6E95
9C1D5496DB40F45AC37E3FAB166035055DF2D72306D8854BF952F27E6AA6F628
489CD0F218B91CF4277C49B464A8A567F6FA841850913EEC3071B76160D20135
DC784DDEB4C1BAF76D3C1AFB862E96EDFE0DC9E0878C7820B3EE34814C049B9C
2943CE5F37D1360342A651900C64F48B91047309B57F43E7A387793B020BAA4D
981CAE6E492FDE2746B1F2C060D5CFC5406A220893CF8DC6176B301EED3F4AEC
EE2B3A0A5471D521AA1D66A9F4960C5C32981DC94787E0870D1341E434CB307D
C02E591EC1780C2B7CF713AF52A95BD016B1AB23E547D1F16CDE36BD34C68ECD
D2D14854A4B7008D6073AFE45581A547CD6A48F129E6E63F052B420E6544413A
31AFB2791484232BEEADB3C3A7F6431F394C9CEC0CA981942E5D1CA6E1FAE73F
DECEB8F489F482033AB6F7E6385CA027995A57C86534637DCC82A4BC905CFA0E
442328FA5CF4C587BBF4D15A6E84F78358D61196BD7FBBEC9E16975D850239B7
D4AD1DB92858FEEBC0879DEC0366239251BDB2184CEE94C436304D50F0C5C2E1
688ED36BB580B8DE9DE0F1DC1BE9E0A9D03DE7D042431C4D4F0B0C666FD18066
B21A4D4F645696D310CA8E174147215FB64C66EF3CF6A8DF67AA0215A258C810
F652CAED0AED78D80DB2732579160C912C1BE55DD2210CC29699FB07D6460690
F9D7AC2A535A1C2686DAC4A337A0ADA64CA39D76834824A136D90D0AA8B945F8
9557EFECC4393FB6696E3A43116B2C3566C21FC489599641AAD29F93D6CE38B9
522CB5D5E04B6AAE0CD9D59A51429981C613D9B1A63D913007B0BB23D642A6AA
E089F218FC6140B8F6834B673959FA3F32E84D9F5B8F822A98E834E3B22136F8
9E32B41BFD9AF01D3A6D9F57E1D1847C7286B442DD6B04BA12271A67684C7634
231E057DA027C4C3069841A5A13E20740F0F8E213E4866A1C67659037571D5B3
42DEF17E7FE8C305782DCD1735B5B488162A109A90FA73B1202E88E153D71484
782A8DF0D8499908B8657EEA0E243E42575D97C90DC9D183B959D4E6CF5760E9
D21133F4998ED1E775D99854A05404235F441F4E24E0F3F4563264689856E95F
5D2F1DE42F438A5B960813BA7655E5CAEC4670D5E9AC8EBD897AB1F7A64EE6F1
C24881F53A94CFA53CCE2C12B3A0DFE34FAA449289815686CA6519860901965C
5835B2B588613D6D4464BA19FCFD44EEA93938D9613A4E478C12476408A822DC
901AF04453E53C8CF9CA607266965AC1AA058A77640AD98B7B2D1991B7E1B16C
752A423EC0139F1907887A5ACDE692C9FC9038813FE2203AA7BF3A3775D43992
F3F7C553C90D311B3F9F16E11BA084761BE599DB72CC4B641D80457D138335B4
AEAF85CBE2D34C8568F412A0DB50F1FD53122CCA40CB317257B0486F426E1618
36CA2D3D00E260C363CA138AD2695747BC1A75E7A2CA5D8E377525B0D2658FB1
3FE2EA35041C134025D8524B276A560F55B2E3ADF7438D96AED3CC8CC5A01892
528C237B70CE0DEF
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont 
%%BeginFont: CMR12
%!PS-AdobeFont-1.1: CMR12 1.0
%%CreationDate: 1991 Aug 20 16:38:05
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMR12) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /CMR12 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /.notdef put
readonly def
/FontBBox{-34 -251 988 750}readonly def
/UniqueID 5000794 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
2BDBF16FBC7512FAA308A093FE5CF4E9D2405B169CD5365D6ECED5D768D66D6C
68618B8C482B341F8CA38E9BB9BAFCFAAD9C2F3FD033B62690986ED43D9C9361
3645B82392D5CAE11A7CB49D7E2E82DCD485CBA04C77322EB2E6A79D73DC194E
59C120A2DABB9BF72E2CF256DD6EB54EECBA588101ABD933B57CE8A3A0D16B28
51D7494F73096DF53BDC66BBF896B587DF9643317D5F610CD9088F9849126F23
DDE030F7B277DD99055C8B119CAE9C99158AC4E150CDFC2C66ED92EBB4CC092A
AA078CE16247A1335AD332DAA950D20395A7384C33FF72EAA31A5B89766E635F
45C4C068AD7EE867398F0381B07CB94D29FF097D59FF9961D195A948E3D87C31
821E9295A56D21875B41988F7A16A1587050C3C71B4E4355BB37F255D6B237CE
96F25467F70FA19E0F85785FF49068949CCC79F2F8AE57D5F79BB9C5CF5EED5D
9857B9967D9B96CDCF73D5D65FF75AFABB66734018BAE264597220C89FD17379
26764A9302D078B4EB0E29178C878FD61007EEA2DDB119AE88C57ECFEF4B71E4
140A34951DDC3568A84CC92371A789021A103A1A347050FDA6ECF7903F67D213
1D0C7C474A9053866E9C88E65E6932BA87A73686EAB0019389F84D159809C498
1E7A30ED942EB211B00DBFF5BCC720F4E276C3339B31B6EABBB078430E6A09BB
377D3061A20B1EB98796B8607EECBC699445EAA866C38E03ED7D4F3EDBCA1926
2AF6A41F67AFCFBF3630C943FA111E4CCD988A7363F7C2B75EAF5830B049460E
0D2B337988F150B9182E989E7750C51BA83DF37685483F86D1F47478883F3F6A
4B7F768DA5AA89E8F163029ADD4A9209DE8A4F285766C06EA859639B92CCCDCA
F59B1C2BB8D588CA754D1257BFF76B53984DF4937093AAEF79009D32A29A4C16
FB610C7D6713482C48D7F9E8410C0F00AD6E67021056B6035534E79F05D14EF2
4E87E49C65FC342CE45A774EE3796F7D7BA2ABE47E89F92BB05E53465D2805AA
0959E3549665201BF84C23F6215E3AD69E20095E98A203D623DB50D05F7299AD
E0F6CBB2A1382AA2C2F57E2950036BB653AF7C2F1DF30D0F674D6B61E97348AF
4FCA4A3FC24B7AEAF7484882B37F1BFF4F2B1B8EA3E66D6C69B66A801EF35BD4
8EA12C6960CD7A821E3E1F2E9C294235692F980D00A6766E40A1E362B8A5A48B
06B925816A55AC7E025F522DD833E05E1FE2435491101B4C741EDF6BE7749FAE
F29A9F2D5033813F4E5A95084B1885FB56E387D16607F7AC7B32855159D6D9B6
AD8C99ADA87B2A9E122A977E3FD9AE6E3D5B00160031EBCF1E6983CB9872F2DB
95173BA4EEDD7AA38E769AAB4554ED2A843C5F5E52E7B2BA5C1C2CD1A12BD288
14895DBA5672C07EEB769F2CEE850294870FB7BB49686931622445B8F71B05F5
D6900620295AB0AAD0CB629B994E1942AD23A7442045BF04A73E18FE467371AC
013DB6E1792BB90EA40DEF37ECDBA016DC6DF170FC72E4798645503AD4AD1569
63ACF2E3BF7600F9538D506496DB0A4DAE9208B5D9E14FB3343A1591E0D69F94
B5B21C35F0EF9EA8E75AE88078C04E0F4A3D16E2C8BFF5EDFD4D8FAAE4B69E38
302506198564F120B3CDBBE11FF87FD3E9E09E9D322FF0313B4734B760F83E26
AC4E7EE9CA83AD9E8A973A4B228F82F6914CADA83CCCAEFE14DFE873725F7E5A
2B01302FFDFAB4BD9FF09881F078E668341AEB6DB2E3F0C3ED7302C7D97EACE4
DFBE601DD0315AE85A82372D488CF209BEDEDBAA80A2CAB57FA130A0FE0A6F84
2C027DCCE5B7726C0A33653B337F4678C7D50AE88D3F64C0D02CF8E83F5FB394
5DAF747F9C65070896E2EF2EB88636D8F84A86453CF0033BB4E0FA8F395D5D19
3C57477DDF60F4F6C7BE2572841408258F9295FD00BAE45895439065C3376CB2
D55D63945D0BFCCFEBD96702D894CDDCDEB8B942DBF1BC7FD072BE5D6D772012
299F26DA8F6096483D31D48EA82A38D9D8C71220C2FEBA8BF77322D1077F719A
1A96F87DB119D3C02AC15BD1B5B880B1094A0409EA961D35B0D8E6A8F2ACA92A
599EA6027E523E600A4816A16D6AC0136D103F2339FF239A0C67E225056D03C2
314BBE5C7C31A22B451E59A194AEC7E529D7E5169FD33750485C1CA98799F825
99763466AA3C568FB582754CD0FFA8650984D816ABD1FDD68CE39B4987B9C891
6DE9036C49C43C01F02F743C71F643578B214E6E63D4B2F1D10912FC57EF0E71
54572F1694072999D901ED4529BBB7DB8C49805331D6958BBC1EC20C8E0216F5
6B9A0502A63FECD48587FDDCAD79D0A62004D6ED6E7538A7B7572D03D41D13D7
816D2510D943677DB6117EC03A208854C15E4FA9F4BD6CCA423BB00E066A0612
5F629360C5951C0AE2108BD20265F0D447954AB159E5F9D603F99029E217A051
C8775E28D1A9B4CD7848CB0DA922891C919F3DEE0B857635D447916D6EB40C38
784395F0A29CC768EA200B2CDA9D567C22B3970DA9B8BD597B9197A812C2D3D4
AECCF0E4ADF901C8EEBB4A5E311DE119B3F573412F19CE6923E57367EC34BF96
4CEE0B0CFD63B937E953DD5E309B14E9DA24FE51D00DCD4A5CBEA635CF65CAE7
B77F5C674897AAFDAF5F76C7C422D71B5E45872DB96E783E304E0C128F007BDF
37F13485D76724A58BD45FFA7EF7BF9D4667788D4C16B0FD73D0C02F151CED80
96F86F4257E61D2B25697153A6B1D514CF1CD2267C0FE0716B38C902D6617B99
42F8DD27DD42CF9F25BA0B3B078B91A0E1CCEB297871F4BD36504259042D5727
DB2122FBF8C9AFBDFD24CA48507C22B66EC1E5A8A9CF007480D60D52A775A3E0
4889980D96628DB19D88A9414F32AE8DC6291C0BC77B0D4558C4DC3B98E9D4C4
520AE97FF265E4D403780147C7C8DBB64620FE33D18ED60A8FC2ED085A434F86
C1E015009826936DBE4A61D0E68F88AA2B285E8F924BE8E7CAE12C75B835BD25
1DB834D542ED0D8CE65020AA77691851C492025F95AE66B09E856EF1D178DE0C
97404AA43E5F92567499CC39FED1C57D96BCF51F77C4F837BCEC70AEC29AE634
2AFF5F33D0DE0633EDF0F2E85A2BE23CA3CC13C909C81BD289DA2F2680BA728B
E7047DF0D84B17A77EF97AB0B34B78D007AFAD7F4454865FD654ED2068A2F31A
623321FF6AB0681F3EDB82124CEAD39FB5B01B94AC0CF71812803C9A5B66B348
B3603BDAA34EF1993FE61F78C881A5507236F5EEB4B0D4802A2E8A05F2CBD1EC
54A31E3F5CEB068587DB205839E8E6CF81FD248FBBAA40F4EDE167401421BDEF
433C06ECC23200FD1133AFE0BC38C67D8AB82FD17A296E04AB678B45BAAF6AEF
C14BD1DAC1C3C8E208F66E9A08AAF5AB35295D2614D82BE8A0583A1BD9D64B46
62C6F712614AAD7A4C4D67AC27C96CFD25C4BABAA54AFBBA6BC9188F889758A4
8C903247399DB6172D85BE201F7949EA009D43EBFAE99C35BC3E32ED101E5465
00996F5E3E4C166CE6D5DFBED0EB5795E263E05C792798D4E405238C6FFCFBDB
2EA29E2DAE611E1109D69B8FCC838BA1BD8F9FD719189FFC37FE60C48C222AC8
D14480E95F851550CBB9AA405C6440067A373FCD2CDBEBDE4B32AAA724BCC91A
E26FB9BC96EF0F86471986489DBA2B654E93B50C6EE5B324A8DBA7EAD8FFF352
172C41D5E7125482D48CDB935F608A505C0D0D1EA6189644A503C497595A9240
771D2229902E873564223F8A9AEB55A82EFB02D575440CB6FC5AA6B958DC053B
3E112C8F802E1219F86E8DE1409B93F7A80C1E50C2C384DF5E20DB2AEA3CFD46
5BA496F26F200CBD9FFA421A9D4B422C6810384E5AB20D984B259959BC5516D8
81CA69A4E823068EFDBE7607788606DFF0F9CA2CC6595917186C599C91F9E0F0
FE8D21A5F23BF2C32B707FFD67B97E873241321C11A463DC1CD13BEC0BB2F946
1DBDF2CB57B46EB0059DD8B9CEA8B888AD79CB2B08F9F33C875A13362C6045C2
51858A87C7E6B558BC118DF095BDEFF7D6B72B09A682A5BD38EA14DAD4F875AC
1649FA0028913C7237089037F6296E25F94C1FC6E5ACFDCA064C5112367AE620
4014B0C4072398FDDF39F52C9D87CB10FFB4E1DEE1AB3C5BD93B07157C44940A
578455C965890B95A080769B394BDC537F27F029AC8CB8047C985182905C27B7
5499BA8A3BF3DC3E82F2A5A23133E6514EB19A5854E3805F843288186B12B90B
7990DEA8C60E4782116F04CB4E80E7B8EF7608862D7A5E8AEC9CA486EA66D0A9
93052A6118ABA78A02920C09F26014CF91A2ABEA92AB9D13FD0ED5CB89EFF3F8
5A0D219BFBBA854D6BC3AEB7FADD647BF0F8C35857DF0B016E9F3A255B041C65
41B757D6A9D173DA4A3F6ACDF9B8535F4518AC7A2BB0BC4E9E9EFDE77AC3456A
E2DE012B77671B3011BFC69C0530607F9C0FC748E30E64D82C8166902F3E59E7
DD154CD26EEE9C85C893A140CCF026440AA4DE230B7D95F4ECF3B314DD843A36
54F547BF91E3B732F3D66812BDF20C24AE906836D5DF85C602A867BAF93D1517
8C4E2CB47D8386C328F4537222EEAA7D6A5D2422D7F37A9F7EF45AB004CAF1B7
6E1F8DD8E726783FF157787C635A0541D5E6A491CF16BAB47407D1065E11D76A
0B83815F771FDD1D554A2DD9E488381C98128680F3330670E385FE965A456242
DD90123EFE98B91568558321EED7400BECAD2E9BD4444BC8F0536A3818A489EA
E9E7CBCC1B162E2165B15EF474C185CFF676B5BF62C3F962F4AA8E83797BFCF8
0977C0CC9C451B7BEF5F3AE9A9710485FA6303D93A9FEDEFAD4AC537674EF662
DB0DC9BF7C4C9EC973C28AF8D4851B3B709B812336D89623A366AC7D0CADC3AE
A22D5C309A3825E7E21C14E48E1CF0918F3E7A28226354A5921D9CC989C7ED83
158B72A914E4166EF52FD97F02B3A49AFD4DA39E57566A673BBD6873B93015C2
E411565399E7653BF82749E6938EACFE6676151123D393D9DFF2B6334018EA38
B02E5C40257AAB133D8CEAA9B0E3772347D9DB0CB3CEF880FA27320AE967D4DF
2FE43346CA5A8598F9EBED4F070AA24EB186CE93146AD7037887E89C2DCFB4B9
E5A28AFACAE392A9D6381C4DE6883C4865FD73010C60EEF1989BA81A4A38F5AA
A245ABCF4374CEF131B7B9DC35401DDB35D099B2F46F94F130097C85043C00F7
B7395EC6FBCC4FAF35BFD6D6800F7ED986A1C64F0158420F89581B1C0266CBA3
436BAD26DFFEE7054A8A9405D7944CB8A39B6573637D59D3ED204386A14D56E9
266D78C302227BCEC01E94E7CB3FCFCD1BCD1FE1924A3BA1BE41AA0A910C2290
E791DC4D75A74608C3ADA13523DA95670019EBA5C5F8DEEA7DC970B9AF244FF6
DB1E0C52F0509DF58F6F7ADF034DB7C4084EFC2195E6CA8F5CDCF1B129AA4EE8
55931565F7BAE601F75FFAD25835F809456550441931BEF671145F663E4B3793
318EA2388DEE2C5BFC168F6AD9EFE791FF43EC1557D9C0F2CDD01DB3F2734EF7
321034D6CF1C68588B2364BE705178F8E514F2AED8C86E9F3FB491E49C601D1C
671313562BDCD5506798DD82D74C18B68F8189856AEABDD0BB3BD7AE68AF441D
EAC2DC53EC94B1867DD769B0DC0593287F061488F88E944668069D21B69EF163
D4ADF35988A42DB5AEA039109BE72437C2966DB6E2851A628096465E4358173E
13CB94450DB98489A4DC56C0196BF6074C006821BF5FF23E614A4158B840488F
84A973E6D9A79708DFA6D3D6F89EED284B55EEC9CA1D4D24EB83BD91812A0E3B
86B2F3824E9879C5582530EA157CAA056177B01C780BBA4733F0AE2CBD3BFD83
0C724E324BE171BEE1290949F9C5A5F8D607418C786E9E7861B068F84B44DC49
55149AFA6B9637F7E71614FBD9D62AD8430065BE3CC920B739CC60E332045066
96385BF6A532907825DF3A6F1464FD23DE7A9A4DCB18A63AFAC5A77BFDFE1C6A
BA84344BC5A962172258E875D33E533213DB010B74931C82AF7A5AAC3E1F2B43
E7FD9D78CA7ADCBFA7E03A59973ECDA9E0CD98C6D1BCD9691C3B6F00699430B4
9DECEC5DC88D881362BC2837906C9583C9883E7A1DDA8FA8B048B828430DE07B
FB73231378A371A2615686DE49E4C7A8951E049E5EE87436AE83FE1EA9F0C7FA
1805F224946D57C3AAA68BCA5640B2390C52FAF60BD746385FF34D2875BDD23E
03C4416B2C4F66A3A39BAE4B81557EEC099D175592E430292B2F4E0867E6FA27
A9262A521A57462EF4B94606A74DDAAB9DA182511DD38141F225C4619695AD75
B6B00096CAA97CE2F0B60899C50425495DB000FD70CE6EF66B719173C9DFFB46
42F48B6DD59899136A9190DAFE378097BD51F9ABCB65EE2AD31966560A5BA42F
6C959367682D2547BC82E474494E4A20EF025F84B91F0B2B9913BB115B311E35
6B53453B012EA2371E38B63466B31C876337709099094E5B07D78BF09DA248A6
223AD7079A8C8167263BB75A09C4F95F6A6FCD52306FED429E05677CB0549658
354B61959DB6831BDEA4BAEDD568E97B779F3E05BD847C496A791AE9BF22BD95
3E2E5DBBBAB248D02BC2D734B224AC3573C1FD787FF58ADD77A43CA462FC6958
4F5AC64FF265AAA702F33D43EDD3B59B4C0C0FB256CCEF68CF37C74544D5EB26
2261C9856BD01DC7F5F020333CEE6C1B540E2BEC8E8FC0863F2DA2E58EA2DC82
D5181604A2B696507E4F696222BC29FC0299B1CE683269DC5CBCC15B270F22C0
DCC7437BD069A473829BBBC4AEAD3B05E9A006076C98ABCFE2082BA59830499D
6E6C2A75B4996F3A0C6D2DF06BC70B3B6222C175F060841853ED4C52B4E8C8DD
DDA82D8C985232AC0CB9E8528627B498757E515C247C61639A851BB3238818C5
5B0E64F66DE0D796970DD12FCE7530AF0F563DA436E1F75DEEA5FBB722BA1D35
C1B3EB1013818E3454BB568A16493016F7269DC5483B486B3663AA9240A7A6EF
9CA2DA129CABAD160E0F589C35D05D466A6A39FF7AB8949292F4533686DA405E
AE5D2689F87A984FD6D30AA99D677FD645AF3FAE203272E7FB58C207A14AD434
06A219FEFBEA9F2EC52472F937BF51E1C22E2B12AC865525F7B81823EC360CE4
D1F1B2088289507E5C6C2B00ADE281F9D2942D0CE44B613CE12B9454FADE2B62
83287D95F586E49EB19C091D8F3DFBDB34CF1E98CAA53E121E9CDFA28819C5F0
EDFAE9735B2FCA16AB68CA5CB9D72232E5FFDFDA42EB03501FF095B20D0965D9
301BABCBB1071E257349E716A074841BB03FB32FE866EA93DB055C06D24A3CA2
96D920C86BDA9128C4CB5E09F012F7C36E60B560A082CD106FE722AF693847E5
4B6E34D8E608FCC7EAF45ECF5EB05DA5C641A0379F5A3C7FE33AD67702C2B3B2
E5B6B0A1DB3696835572E4267501E9C45361398887E44E7A748B52CB0B952E18
463CD4AD4DC94370B4EC741C05332282D494541387561F4B747573D9EFEA5A30
FF66FDE166CEED83DDA778E16A5B0AB8B956ADB8D0B1F08ABDD49FD21A11FC95
C09173990B20
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont 
TeXDict begin 39158280 55380996 1000 1200 1200 (manual.dvi)
@start /Fa 129[78 78 78 78 78 78 78 78 78 78 78 78 78
78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78
78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78
78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78
78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78
78 78 78 78 78 78 78 78 78 33[{ TeX09fbbfacEncoding ReEncodeFont }94
149.44 /CMTT9 rf /Fb 201[61 4[61 61 48[{
 TeXf7b6d320Encoding ReEncodeFont }3 99.6264 /CMR6 rf
/Fc 133[68 81 81 111 81 85 60 61 60 81 85 77 85 128 43
81 47 43 85 77 47 68 85 68 85 77 7[115 115 1[115 115
111 85 113 119 105 119 115 141 96 119 1[55 115 121 100
105 117 111 109 115 12[77 77 77 77 3[51 31[85 85 12[{
 TeXf7b6d320Encoding ReEncodeFont }56 149.44 /CMR9 rf
/Fd 145[82 4[47 105[{ TeXaae443f0Encoding ReEncodeFont }2
116.231 /CMMI7 rf /Fe 135[103 2[103 103 1[103 12[103
103 103 1[103 14[103 8[103 3[103 69[{ TeX09fbbfacEncoding ReEncodeFont }
11 199.253 /CMTT12 rf /Ff 133[100 118 118 162 118 125
87 88 92 118 125 112 125 187 62 118 68 62 125 112 68
102 125 100 125 109 8[169 232 2[156 125 167 1[153 168
1[213 135 175 1[83 1[176 141 147 172 162 159 169 7[112
112 112 112 112 112 112 112 112 112 1[62 75 32[125 12[{
 TeXf7b6d320Encoding ReEncodeFont }57 199.253 /CMBX12
rf /Fg 134[81 95 1[80 3[75 3[100 4[57 2[81 2[72 19[127
133 10[119 4[129 1[129 46 46 42[67 15[{
 TeXaae443f0Encoding ReEncodeFont }16 166.044 /CMMI10
rf /Fh 207[38 44[68 3[{ TeXbbad153fEncoding ReEncodeFont }2
116.231 /CMSY7 rf /Fi 220[123 35[{ TeX09fbbfacEncoding ReEncodeFont }1
239.103 /CMTT12 rf /Fj 149[46 65 65 83 83 60[166 7[166
12[129 4[83 14[129{ TeXbbad153fEncoding ReEncodeFont }10
166.044 /CMSY10 rf /Fk 133[81 4[103 64 81 83 1[98 1[108
157 3[59 98 88 1[88 3[98 50[59 46[{ TeX74afc74cEncoding ReEncodeFont }
14 166.044 /CMBXTI10 rf /Fl 133[120 142 142 194 142 149
105 106 110 142 149 134 149 224 75 142 1[75 149 134 82
123 149 120 149 131 9[278 1[207 187 149 201 202 184 202
1[255 162 2[100 210 211 169 177 206 194 191 203 7[134
134 134 134 134 134 134 134 134 134 134 75 90 32[149
12[{ TeXf7b6d320Encoding ReEncodeFont }58 239.103 /CMBX12
rf /Fm 198[66 3[66 66 1[66 66 66 48[{ TeXf7b6d320Encoding ReEncodeFont }
6 116.231 /CMR7 rf /Fn 135[204 3[151 1[158 1[215 1[215
4[108 215 2[177 215 2[188 29[280 1[293 8[194 194 194
194 194 194 194 194 49[{ TeXf7b6d320Encoding ReEncodeFont }20
344.375 /CMBX12 rf /Fo 129[87 87 87 87 87 87 87 87 87
87 87 87 87 87 87 87 87 87 87 87 87 87 87 87 87 87 87
87 87 87 87 87 87 87 87 87 87 87 87 87 87 87 87 87 87
87 87 87 87 87 87 87 87 87 87 87 87 87 87 87 87 87 87
87 87 87 87 87 87 87 87 87 87 87 87 87 87 87 87 87 87
87 87 87 87 87 87 87 87 87 87 87 87 87 33[{
 TeX09fbbfacEncoding ReEncodeFont }94 166.044 /CMTT10
rf /Fp 131[191 2[101 101 138 101 106 74 75 79 101 106
95 106 159 53 101 1[53 106 95 58 88 106 85 106 93 8[144
197 144 147 133 106 143 1[131 143 1[181 115 1[99 72 4[146
138 136 144 7[95 95 95 95 95 95 95 95 95 95 1[53 64 53
4[53 26[106 111 11[{ TeXf7b6d320Encoding ReEncodeFont }58
166.044 /CMBX10 rf /Fq 134[245 245 336 1[258 181 183
190 1[258 232 258 387 129 245 1[129 258 232 1[212 258
207 258 226 8[351 2[357 323 258 2[317 349 1[441 279 2[173
5[336 330 351 8[232 3[232 12[129 39[{ TeXf7b6d320Encoding ReEncodeFont }
36 413.118 /CMBX12 rf /Fr 133[68 81 77 110 76 89 55 68
70 76 85 85 93 136 42 76 51 51 85 76 51 76 85 76 76 85
3[51 1[51 4[123 123 119 93 121 1[113 127 123 149 104
128 1[64 123 128 108 113 125 119 1[123 1[85 6[85 3[85
2[85 85 1[51 59 51 127 1[68 68 51 25[98 93 12[{
 TeX74afc74cEncoding ReEncodeFont }61 166.044 /CMTI10
rf /Fs 131[166 83 74 88 88 120 88 92 65 65 65 88 92 83
92 138 46 88 51 46 92 83 51 74 92 74 92 83 46 2[46 83
46 1[125 125 171 125 125 120 92 122 129 113 129 125 152
104 129 85 60 125 130 108 113 127 120 118 125 129 78
1[129 46 46 46 83 83 83 83 83 83 83 83 83 83 83 46 55
46 129 83 65 65 46 4[83 19[138 92 92 97 11[{
 TeXf7b6d320Encoding ReEncodeFont }87 166.044 /CMR10
rf /Ft 138[147 2[102 3[147 222 72 3[147 1[79 117 1[117
1[132 13[147 195 4[244 20[132 3[132 52[{
 TeXf7b6d320Encoding ReEncodeFont }15 286.924 /CMR17
rf /Fu 134[103 4[76 77 76 1[108 98 108 163 54 103 1[54
108 1[60 87 108 87 108 98 12[141 108 144 4[179 1[152
100 70 21[98 1[98 2[54 46[{ TeXf7b6d320Encoding ReEncodeFont }28
199.253 /CMR12 rf end
%%EndProlog
%%BeginSetup
%%Feature: *Resolution 1200dpi
TeXDict begin
%%PaperSize: A4
 end
%%EndSetup
%%Page: 1 1
TeXDict begin 1 0 bop 2776 4306 a Fu(The)65 b(Incomplete)1770
4671 y Ft(Sc)-7 b(heme)84 b(48)i(Reference)e(Man)-7 b(ual)2857
5037 y Fu(for)64 b(release)g(1.3)1130 5767 y(Ric)-5 b(hard)64
b(Kelsey)470 b(Jonathan)65 b(Rees)470 b(Mik)-5 b(e)64
b(Sp)5 b(erb)g(er)p eop end
%%Page: 2 2
TeXDict begin 2 1 bop 1893 1046 a Fs(A)43 b(line)i(ma)-5
b(y)44 b(tak)-5 b(e)43 b(us)i(hours,)i(y)-5 b(et)44 b(if)g(it)f(do)5
b(es)44 b(not)g(seem)h(a)f(momen)-5 b(t's)45 b(though)-5
b(t)1893 1245 y(All)55 b(our)h(stitc)-5 b(hing)56 b(and)f(unstitc)-5
b(hing)57 b(has)f(b)5 b(een)55 b(as)h(nough)-5 b(t.)5020
1611 y(Y)-14 b(eats)5020 1810 y Fr(A)-8 b(dam's)58 b(Curse)4296
10511 y Fs(ii)p eop end
%%Page: 3 3
TeXDict begin 3 2 bop 581 2374 a Fq(Ac)-13 b(kno)g(wledgemen)g(ts)581
3238 y Fs(Thanks)44 b(to)e(Sc)-5 b(heme)44 b(48's)g(users)g(for)f
(their)f(suggestions,)48 b(bug)43 b(rep)5 b(orts,)46
b(and)d(forb)5 b(earance.)581 3437 y(Thanks)56 b(also)g(to)f(Deb)5
b(orah)55 b(T)-14 b(atar)55 b(for)g(pro)-5 b(viding)57
b(the)e(Y)-14 b(eats)55 b(quotation.)3376 10511 y(iii)p
eop end
%%Page: 4 4
TeXDict begin 4 3 bop 1478 2378 a Fq(Con)-13 b(ten)g(ts)1478
3414 y Fp(1)154 b(In)-5 b(tro)5 b(duction)4333 b(1)1478
3785 y(2)154 b(User's)63 b(guide)4356 b(2)1727 3988 y
Fs(2.1)170 b(Command)56 b(line)g(argumen)-5 b(ts)125
b(.)83 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
h(.)f(.)g(.)g(.)g(.)263 b(2)1727 4191 y(2.2)170 b(Command)56
b(pro)5 b(cessor)133 b(.)83 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)263
b(3)1727 4395 y(2.3)170 b(Editing)165 b(.)83 b(.)g(.)g(.)g(.)g(.)h(.)f
(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
g(.)g(.)h(.)f(.)g(.)g(.)g(.)263 b(3)1727 4598 y(2.4)170
b(P)-5 b(erformance)53 b(.)83 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h
(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
g(.)263 b(3)1727 4801 y(2.5)170 b(Disassem)-5 b(bler)154
b(.)83 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)263 b(4)1727
5004 y(2.6)170 b(Mo)5 b(dule)55 b(system)124 b(.)83 b(.)h(.)f(.)g(.)g
(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
h(.)f(.)g(.)g(.)g(.)263 b(4)1727 5207 y(2.7)170 b(Library)159
b(.)83 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)263
b(6)1478 5579 y Fp(3)154 b(Command)64 b(pro)5 b(cessor)3682
b(7)1727 5782 y Fs(3.1)170 b(Curren)-5 b(t)55 b(fo)5
b(cus)56 b(v)-9 b(alue)55 b(and)g Fo(##)148 b Fs(.)83
b(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
(.)g(.)g(.)263 b(7)1727 5985 y(3.2)170 b(Command)56 b(lev)-5
b(els)157 b(.)84 b(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)263
b(8)1727 6188 y(3.3)170 b(Logistical)55 b(commands)91
b(.)83 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)263 b(9)1727 6391 y(3.4)170
b(Mo)5 b(dule)55 b(commands)113 b(.)83 b(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)263
b(9)1727 6594 y(3.5)170 b(Debugging)56 b(commands)142
b(.)83 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
g(.)g(.)h(.)f(.)g(.)g(.)g(.)263 b(9)1727 6797 y(3.6)170
b(Switc)-5 b(hes)79 b(.)k(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
g(.)g(.)180 b(11)1727 7000 y(3.7)170 b(Insp)5 b(ection)55
b(mo)5 b(de)152 b(.)84 b(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)180
b(12)1727 7204 y(3.8)170 b(Command)56 b(programs)130
b(.)83 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)180 b(14)1727 7407 y(3.9)170
b(Building)56 b(images)i(.)83 b(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)180
b(14)1727 7610 y(3.10)87 b(Resource)56 b(query)e(and)i(con)-5
b(trol)130 b(.)83 b(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
(.)g(.)h(.)f(.)g(.)g(.)g(.)180 b(15)1727 7813 y(3.11)87
b(Threads)111 b(.)83 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h
(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
g(.)180 b(16)1727 8016 y(3.12)87 b(Quite)55 b(obscure)83
b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h
(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)180 b(16)1478
8388 y Fp(4)154 b(Mo)5 b(dule)64 b(system)4018 b(18)1727
8591 y Fs(4.1)170 b(In)-5 b(tro)5 b(duction)51 b(.)83
b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h
(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)180 b(18)1727
8794 y(4.2)170 b(The)55 b(con\014guration)h(language)139
b(.)83 b(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)
f(.)g(.)g(.)g(.)180 b(19)1727 8997 y(4.3)170 b(In)-5
b(terfaces)133 b(.)83 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f
(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
180 b(21)1727 9200 y(4.4)170 b(Macros)51 b(.)83 b(.)g(.)g(.)g(.)g(.)g
(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)180 b(22)1727 9403
y(4.5)170 b(Higher-order)55 b(mo)5 b(dules)166 b(.)83
b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
(.)h(.)f(.)g(.)g(.)g(.)180 b(23)1727 9606 y(4.6)170 b(Compiling)56
b(and)g(linking)117 b(.)83 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)180 b(23)1727
9809 y(4.7)170 b(Seman)-5 b(tics)56 b(of)f(con\014guration)h(m)-5
b(utation)134 b(.)83 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
(.)g(.)g(.)180 b(23)1727 10012 y(4.8)170 b(Command)56
b(pro)5 b(cessor)56 b(supp)5 b(ort)163 b(.)84 b(.)f(.)g(.)g(.)g(.)g(.)g
(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)180
b(24)4275 10511 y(iv)p eop end
%%Page: 5 5
TeXDict begin 5 4 bop 830 1046 a Fs(4.9)170 b(Con\014guration)56
b(pac)-5 b(k)c(ages)55 b(.)83 b(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)180
b(27)830 1266 y(4.10)87 b(Discussion)76 b(.)83 b(.)h(.)f(.)g(.)g(.)g(.)
g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f
(.)g(.)g(.)g(.)g(.)g(.)h(.)180 b(28)581 1665 y Fp(5)154
b(Libraries)4548 b(30)830 1885 y Fs(5.1)170 b(General)56
b(utilities)e(.)83 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)
f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)180
b(30)830 2104 y(5.2)170 b(Prett)-5 b(y-prin)g(ting)123
b(.)83 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)180 b(32)830
2324 y(5.3)170 b(ASCI)5 b(I)55 b(c)-5 b(haracter)55 b(enco)5
b(ding)111 b(.)83 b(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h
(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)180 b(32)830 2544 y(5.4)170
b(Bit)-5 b(wise)56 b(in)-5 b(teger)55 b(op)5 b(erations)107
b(.)83 b(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
g(.)g(.)g(.)g(.)h(.)180 b(32)830 2763 y(5.5)170 b(Byte)54
b(v)-5 b(ectors)52 b(.)84 b(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)
180 b(33)830 2983 y(5.6)170 b(Sparse)56 b(v)-5 b(ectors)54
b(.)83 b(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)180 b(33)830
3203 y(5.7)170 b(Cells)93 b(.)83 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
g(.)g(.)g(.)g(.)g(.)h(.)180 b(33)830 3422 y(5.8)170 b(Queues)47
b(.)83 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)180
b(34)830 3642 y(5.9)170 b(Arra)-5 b(ys)87 b(.)c(.)g(.)g(.)h(.)f(.)g(.)g
(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)180 b(34)830 3862 y(5.10)87
b(Records)127 b(.)83 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
h(.)180 b(36)1212 4081 y(5.10.1)107 b(Lo)-5 b(w-lev)g(el)56
b(access)g(to)f(records)160 b(.)83 b(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)
f(.)g(.)g(.)g(.)g(.)g(.)h(.)180 b(37)1212 4301 y(5.10.2)107
b(Record)56 b(t)-5 b(yp)5 b(es)125 b(.)83 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g
(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)180
b(37)830 4521 y(5.11)87 b(Finite)56 b(record)f(t)-5 b(yp)5
b(es)98 b(.)83 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)180 b(38)830
4740 y(5.12)87 b(Sets)56 b(o)-5 b(v)g(er)55 b(\014nite)h(t)-5
b(yp)5 b(es)90 b(.)83 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)180 b(40)830
4960 y(5.13)87 b(Hash)56 b(tables)114 b(.)84 b(.)f(.)g(.)g(.)g(.)g(.)g
(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
g(.)g(.)g(.)g(.)h(.)180 b(41)830 5180 y(5.14)87 b(P)-5
b(ort)55 b(extensions)99 b(.)83 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)
180 b(42)830 5399 y(5.15)87 b(Fluid)57 b(bindings)170
b(.)83 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)180 b(43)830
5619 y(5.16)87 b(Shell)56 b(commands)48 b(.)83 b(.)g(.)g(.)g(.)g(.)h(.)
f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
(.)g(.)g(.)h(.)180 b(44)830 5839 y(5.17)87 b(So)5 b(c)-5
b(k)g(ets)166 b(.)83 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
h(.)180 b(44)830 6058 y(5.18)87 b(Macros)56 b(for)f(writing)h(lo)5
b(ops)85 b(.)f(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h
(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)180 b(46)1212 6278 y(5.18.1)107
b Fo(Iterate)79 b Fs(.)k(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)180
b(46)1212 6498 y(5.18.2)107 b Fo(Reduce)166 b Fs(.)83
b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)180 b(47)1212
6717 y(5.18.3)107 b(Sequence)55 b(t)-5 b(yp)5 b(es)105
b(.)83 b(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)
f(.)g(.)g(.)g(.)g(.)g(.)h(.)180 b(47)1212 6937 y(5.18.4)107
b(Sync)-5 b(hronous)57 b(sequences)c(.)83 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g
(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)180 b(48)1212
7157 y(5.18.5)107 b(Examples)118 b(.)83 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g
(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
h(.)180 b(49)1212 7376 y(5.18.6)107 b(De\014ning)56 b(sequence)f(t)-5
b(yp)5 b(es)116 b(.)83 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
g(.)g(.)g(.)g(.)g(.)h(.)180 b(50)1212 7596 y(5.18.7)107
b(Expanded)56 b(co)5 b(de)94 b(.)83 b(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h
(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)180
b(51)830 7816 y(5.19)87 b(Sorting)56 b(lists)g(and)g(v)-5
b(ectors)107 b(.)84 b(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)180 b(51)1212
8035 y(5.19.1)107 b(Design)56 b(rules)61 b(.)83 b(.)g(.)g(.)h(.)f(.)g
(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
g(.)h(.)180 b(52)1212 8255 y(5.19.2)107 b(Pro)5 b(cedure)55
b(sp)5 b(eci\014cation)167 b(.)83 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)180 b(54)1212 8475
y(5.19.3)107 b(Algorithmic)56 b(prop)5 b(erties)76 b(.)83
b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
(.)h(.)180 b(62)830 8694 y(5.20)87 b(Regular)56 b(expressions)47
b(.)83 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)180 b(62)1212 8914
y(5.20.1)107 b(Character)55 b(sets)159 b(.)83 b(.)h(.)f(.)g(.)g(.)g(.)g
(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)180
b(63)1212 9134 y(5.20.2)107 b(Anc)-5 b(horing)70 b(.)83
b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)180 b(64)1212 9353
y(5.20.3)107 b(Comp)5 b(osite)56 b(expressions)85 b(.)e(.)g(.)g(.)g(.)h
(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)180
b(64)1212 9573 y(5.20.4)107 b(Case)56 b(sensitivit)-5
b(y)71 b(.)83 b(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)180 b(64)1212 9793
y(5.20.5)107 b(Submatc)-5 b(hes)57 b(and)f(matc)-5 b(hing)69
b(.)83 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
h(.)180 b(65)830 10012 y(5.21)87 b(SRFIs)126 b(.)83 b(.)g(.)g(.)h(.)f
(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)180 b(66)3402
10511 y(v)p eop end
%%Page: 6 6
TeXDict begin 6 5 bop 1478 1046 a Fp(6)154 b(Threads)4608
b(69)1727 1271 y Fs(6.1)170 b(Creating)55 b(and)h(con)-5
b(trolling)56 b(threads)142 b(.)83 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)180 b(69)1727 1496 y(6.2)170
b(Adv)-9 b(anced)54 b(thread)i(handling)75 b(.)83 b(.)g(.)h(.)f(.)g(.)g
(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)180
b(70)1727 1722 y(6.3)170 b(Debugging)56 b(m)-5 b(ultithreaded)56
b(programs)62 b(.)83 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f
(.)g(.)g(.)g(.)180 b(70)1727 1947 y(6.4)170 b(Optimistic)56
b(concurrency)169 b(.)83 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f
(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)180 b(71)1727
2172 y(6.5)170 b(Condition)56 b(v)-9 b(ariables)69 b(.)83
b(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)180 b(74)1727 2397 y(6.6)170
b(Mutual)56 b(exclusion)101 b(.)84 b(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)180
b(74)2109 2623 y(6.6.1)190 b(Lo)5 b(c)-5 b(ks)144 b(.)83
b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f
(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)180 b(75)2109
2848 y(6.6.2)190 b(Placeholders)168 b(.)83 b(.)g(.)g(.)g(.)g(.)h(.)f(.)
g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)180
b(75)1727 3073 y(6.7)170 b(W)-14 b(riting)55 b(custom)h(sync)-5
b(hronization)56 b(abstractions)163 b(.)83 b(.)g(.)g(.)g(.)g(.)h(.)f(.)
g(.)g(.)g(.)180 b(76)1727 3298 y(6.8)170 b(Concurren)-5
b(t)55 b(ML)h(abstractions)k(.)83 b(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f
(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)180 b(76)2109
3523 y(6.8.1)190 b(Basic)56 b(rendezv)-5 b(ous)56 b(com)-5
b(binators)64 b(.)83 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
(.)g(.)g(.)180 b(77)2109 3749 y(6.8.2)190 b(Sync)-5 b(hronous)57
b(c)-5 b(hannels)137 b(.)84 b(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)180 b(78)2109 3974
y(6.8.3)190 b(Sync)-5 b(hronous)57 b(v)-9 b(ariables)117
b(.)84 b(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
g(.)g(.)g(.)180 b(78)2109 4199 y(6.8.4)190 b(Timeouts)133
b(.)84 b(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)180 b(80)2109
4424 y(6.8.5)190 b(CML)55 b(to)g(Sc)-5 b(heme)56 b(corresp)5
b(ondence)162 b(.)83 b(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
(.)180 b(80)1478 4833 y Fp(7)154 b(Mixing)64 b(Sc)-5
b(heme)63 b(48)h(and)g(C)3184 b(82)1727 5058 y Fs(7.1)170
b(Av)-9 b(ailable)55 b(facilities)152 b(.)83 b(.)g(.)g(.)g(.)g(.)g(.)h
(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
g(.)180 b(82)2109 5283 y(7.1.1)190 b(Sc)-5 b(heme)56
b(structures)145 b(.)83 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)180 b(82)2109
5508 y(7.1.2)190 b(C)55 b(naming)i(con)-5 b(v)g(en)g(tions)115
b(.)84 b(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
g(.)g(.)g(.)180 b(83)2109 5734 y(7.1.3)190 b(Garbage)56
b(collection)113 b(.)83 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)180 b(83)1727
5959 y(7.2)170 b(Shared)56 b(bindings)g(.)83 b(.)h(.)f(.)g(.)g(.)g(.)g
(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
g(.)g(.)g(.)180 b(83)2109 6184 y(7.2.1)190 b(Exp)5 b(orting)55
b(Sc)-5 b(heme)56 b(v)-9 b(alues)55 b(to)g(C)167 b(.)83
b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)180
b(83)2109 6409 y(7.2.2)190 b(Exp)5 b(orting)55 b(C)g(v)-9
b(alues)56 b(to)f(Sc)-5 b(heme)167 b(.)83 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g
(.)g(.)h(.)f(.)g(.)g(.)g(.)180 b(84)2109 6634 y(7.2.3)190
b(Complete)55 b(shared)h(binding)h(in)-5 b(terface)131
b(.)84 b(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)180
b(84)1727 6860 y(7.3)170 b(Calling)56 b(C)f(functions)h(from)f(Sc)-5
b(heme)116 b(.)83 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f
(.)g(.)g(.)g(.)180 b(85)1727 7085 y(7.4)170 b(Dynamic)55
b(loading)119 b(.)84 b(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)180
b(85)1727 7310 y(7.5)170 b(Compatibilit)-5 b(y)84 b(.)f(.)g(.)h(.)f(.)g
(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
g(.)h(.)f(.)g(.)g(.)g(.)180 b(87)1727 7535 y(7.6)170
b(Accessing)55 b(Sc)-5 b(heme)56 b(data)g(from)f(C)142
b(.)83 b(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
g(.)g(.)180 b(87)2109 7760 y(7.6.1)190 b(Constan)-5 b(ts)91
b(.)84 b(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)180 b(87)2109
7986 y(7.6.2)190 b(Con)-5 b(v)g(erting)56 b(v)-9 b(alues)169
b(.)83 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
h(.)f(.)g(.)g(.)g(.)180 b(87)2109 8211 y(7.6.3)190 b(C)55
b(v)-5 b(ersions)57 b(of)e(Sc)-5 b(heme)56 b(pro)5 b(cedures)125
b(.)83 b(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)180
b(88)1727 8436 y(7.7)170 b(Calling)56 b(Sc)-5 b(heme)56
b(functions)g(from)f(C)115 b(.)83 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)180 b(89)1727 8661 y(7.8)170
b(In)-5 b(teracting)55 b(with)g(the)g(Sc)-5 b(heme)56
b(heap)61 b(.)83 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f
(.)g(.)g(.)g(.)180 b(90)2109 8886 y(7.8.1)190 b(Registering)56
b(ob)9 b(jects)55 b(with)g(the)g(GC)142 b(.)83 b(.)h(.)f(.)g(.)g(.)g(.)
g(.)g(.)h(.)f(.)g(.)g(.)g(.)180 b(90)2109 9112 y(7.8.2)190
b(Keeping)56 b(C)f(data)g(structures)h(in)g(the)f(Sc)-5
b(heme)56 b(heap)135 b(.)84 b(.)f(.)g(.)g(.)g(.)180 b(91)2109
9337 y(7.8.3)190 b(C)55 b(co)5 b(de)55 b(and)h(heap)g(images)83
b(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
(.)g(.)180 b(91)1727 9562 y(7.9)170 b(Using)56 b(Sc)-5
b(heme)56 b(records)f(in)h(C)f(co)5 b(de)49 b(.)83 b(.)g(.)g(.)g(.)g(.)
g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)180
b(92)1727 9787 y(7.10)87 b(Raising)56 b(exceptions)f(from)h(external)f
(co)5 b(de)133 b(.)83 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
(.)g(.)180 b(93)1727 10012 y(7.11)87 b(Unsafe)55 b(functions)h(and)g
(macros)159 b(.)84 b(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
g(.)h(.)f(.)g(.)g(.)g(.)180 b(94)4275 10511 y(vi)p eop
end
%%Page: 7 7
TeXDict begin 7 6 bop 581 1046 a Fp(8)154 b(Access)64
b(to)h(POSIX)3843 b(95)830 1245 y Fs(8.1)170 b(Pro)5
b(cess)56 b(primitiv)-5 b(es)157 b(.)83 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g
(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)
180 b(95)1212 1445 y(8.1.1)190 b(Pro)5 b(cess)56 b(creation)f(and)h
(termination)87 b(.)c(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h
(.)180 b(96)1212 1644 y(8.1.2)190 b Fo(Exec)81 b Fs(.)j(.)f(.)g(.)g(.)g
(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)
f(.)g(.)g(.)g(.)g(.)g(.)h(.)180 b(96)830 1843 y(8.2)170
b(Signals)66 b(.)83 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
g(.)h(.)180 b(97)1212 2042 y(8.2.1)190 b(POSIX)56 b(signals)149
b(.)83 b(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)
f(.)g(.)g(.)g(.)g(.)g(.)h(.)180 b(97)1212 2242 y(8.2.2)190
b(Other)56 b(signals)114 b(.)83 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h
(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)180
b(98)1212 2441 y(8.2.3)190 b(Sending)57 b(signals)96
b(.)83 b(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)
f(.)g(.)g(.)g(.)g(.)g(.)h(.)180 b(99)1212 2640 y(8.2.4)190
b(Receiving)56 b(signals)98 b(.)84 b(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)180
b(99)830 2839 y(8.3)170 b(Pro)5 b(cess)56 b(en)-5 b(vironmen)g(t)107
b(.)83 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)97 b(100)1212 3039 y(8.3.1)190
b(Pro)5 b(cess)56 b(iden)-5 b(ti\014cation)47 b(.)83
b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
(.)g(.)h(.)97 b(100)1212 3238 y(8.3.2)190 b(En)-5 b(vironmen)g(t)57
b(v)-9 b(ariables)93 b(.)83 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)97 b(100)830 3437
y(8.4)170 b(Users)56 b(and)g(groups)95 b(.)83 b(.)g(.)g(.)g(.)h(.)f(.)g
(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
g(.)h(.)97 b(100)830 3636 y(8.5)170 b(OS)56 b(and)g(mac)-5
b(hine)56 b(iden)-5 b(ti\014cation)57 b(.)83 b(.)g(.)g(.)g(.)h(.)f(.)g
(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)97
b(101)830 3836 y(8.6)170 b(Files)56 b(and)g(directories)139
b(.)83 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)97 b(101)1212 4035 y(8.6.1)190
b(Directory)55 b(streams)166 b(.)83 b(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)97
b(102)1212 4234 y(8.6.2)190 b(W)-14 b(orking)56 b(directory)141
b(.)83 b(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
g(.)g(.)g(.)g(.)h(.)97 b(102)1212 4433 y(8.6.3)190 b(File)56
b(creation)f(and)h(remo)-5 b(v)c(al)126 b(.)83 b(.)g(.)h(.)f(.)g(.)g(.)
g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)97 b(102)1212
4633 y(8.6.4)190 b(File)56 b(information)159 b(.)84 b(.)f(.)g(.)g(.)g
(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)
97 b(104)1212 4832 y(8.6.5)190 b(File)56 b(mo)5 b(des)159
b(.)83 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)97 b(105)830 5031
y(8.7)170 b(Time)66 b(.)83 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
(.)g(.)g(.)g(.)h(.)97 b(106)830 5230 y(8.8)170 b(I/O)43
b(.)83 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h
(.)97 b(107)830 5430 y(8.9)170 b(Regular)56 b(expressions)47
b(.)83 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)97 b(108)830 5629
y(8.10)87 b(C)55 b(to)g(Sc)-5 b(heme)56 b(corresp)5 b(ondence)46
b(.)83 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
g(.)g(.)g(.)h(.)97 b(109)581 5994 y Fp(A)105 b(ASCI)5
b(I)65 b(c)-5 b(haracter)62 b(enco)5 b(ding)3013 b(111)581
6359 y(B)113 b(Bibliograph)-5 b(y)4122 b(113)3355 10511
y Fs(vii)p eop end
%%Page: 8 8
TeXDict begin 8 7 bop 4229 10511 a Fs(viii)p eop end
%%Page: 1 9
TeXDict begin 1 8 bop 581 2291 a Fn(Chapter)130 b(1)581
3122 y Fq(In)-13 b(tro)13 b(duction)581 3985 y Fs(Sc)-5
b(heme)67 b(48)f(is)g(an)h(implemen)-5 b(tation)67 b(of)e(the)h(Sc)-5
b(heme)67 b(programming)g(language)g(as)f(de-)581 4184
y(scrib)5 b(ed)60 b(in)g(the)g(Revised)2204 4124 y Fm(5)2338
4184 y Fs(Rep)5 b(ort)60 b(on)g(the)f(Algorithmic)h(Language)g(Sc)-5
b(heme)60 b([6].)88 b(It)59 b(is)581 4384 y(based)i(on)g(a)f(compiler)h
(and)g(in)-5 b(terpreter)60 b(for)g(a)h(virtual)f(Sc)-5
b(heme)61 b(mac)-5 b(hine.)90 b(Sc)-5 b(heme)61 b(48)581
4583 y(tries)56 b(to)g(b)5 b(e)56 b(faithful)f(to)h(the)g(Revised)3016
4523 y Fm(5)3147 4583 y Fs(Sc)-5 b(heme)56 b(Rep)5 b(ort,)56
b(pro)-5 b(viding)57 b(neither)f(more)g(nor)581 4782
y(less)51 b(in)f(the)f(initial)h(user)g(en)-5 b(vironmen)g(t.)73
b(\(This)50 b(is)g(not)f(to)g(sa)-5 b(y)50 b(that)f(more)h(isn't)g(a)-5
b(v)c(ailable)581 4981 y(in)56 b(other)f(en)-5 b(vironmen)g(ts;)57
b(see)e(b)5 b(elo)-5 b(w.\))830 5181 y(Sc)g(heme)50 b(48)f(is)g(under)h
(con)-5 b(tin)g(ual)50 b(dev)-5 b(elopmen)g(t.)73 b(Please)49
b(rep)5 b(ort)48 b(bugs,)k(esp)5 b(ecially)48 b(in)581
5380 y(the)d(VM,)g(esp)5 b(ecially)46 b(core)f(dumps,)k(to)c(sc)-5
b(heme-48-bugs@s48.org.)74 b(Include)46 b(the)f(v)-5
b(ersion)581 5579 y(n)g(um)g(b)5 b(er)60 b(x.yy)e(from)g(the)g("W)-14
b(elcome)59 b(to)f(Sc)-5 b(heme)59 b(48)f(x.yy")g(greeting)g(message)h
(in)g(y)-5 b(our)581 5778 y(bug)72 b(rep)5 b(ort.)120
b(It)70 b(is)i(a)e(goal)i(of)e(this)i(pro)9 b(ject)70
b(to)g(pro)5 b(duce)71 b(a)g(bullet-pro)5 b(of)71 b(system;)80
b(w)-5 b(e)581 5978 y(w)g(an)g(t)61 b(no)f(bugs)i(and,)g(esp)5
b(ecially)-14 b(,)61 b(no)f(crashes.)90 b(\(There)59
b(are)h(a)h(few)e(kno)-5 b(wn)61 b(bugs,)h(listed)581
6177 y(in)56 b(the)f Fo(doc/todo.txt)i Fs(\014le)f(that)f(comes)g(with)
h(the)f(distribution.\))830 6376 y(Send)60 b(mail)f(to)f(sc)-5
b(heme-48-request@s48.org)61 b(to)e(b)5 b(e)58 b(put)h(on)g(a)g
(mailing)g(list)g(for)g(an-)581 6575 y(nouncemen)-5 b(ts,)57
b(discussion,)h(bug)d(rep)5 b(orts,)56 b(and)g(bug)f(\014xes.)830
6775 y(The)40 b(name)g(`Sc)-5 b(heme)41 b(48')e(commemorates)i(our)f
(ha)-5 b(ving)40 b(written)f(the)h(original)g(v)-5 b(ersion)581
6974 y(in)56 b(fort)-5 b(y-eigh)g(t)55 b(hours,)i(on)e(August)h(6th)f
(and)h(7th,)f(1986.)3404 10511 y(1)p eop end
%%Page: 2 10
TeXDict begin 2 9 bop 1478 2291 a Fn(Chapter)129 b(2)1478
3122 y Fq(User's)156 b(guide)1478 3985 y Fs(This)67 b(c)-5
b(hapter)66 b(details)g(Sc)-5 b(heme)67 b(48's)g(user)g(in)-5
b(terface:)95 b(its)66 b(command-line)i(argumen)-5 b(ts,)1478
4184 y(command)56 b(pro)5 b(cessor,)56 b(debugger,)g(and)g(so)g(forth.)
1478 4728 y Fl(2.1)269 b(Command)92 b(line)d(argumen)-7
b(ts)1478 5091 y Fs(A)55 b(few)f(command)j(line)f(argumen)-5
b(ts)56 b(are)f(pro)5 b(cessed)56 b(b)-5 b(y)56 b(Sc)-5
b(heme)56 b(48)f(as)h(it)f(starts)h(up.)1727 5291 y Fo(scheme48)h
Fs([)p Fo(-i)e Fr(image)12 b Fs(])57 b([)p Fo(-h)e Fr(he)-8
b(apsize)12 b Fs(])56 b([)p Fo(-a)g Fr(ar)-8 b(gument)60
b(.)25 b(.)g(.)g Fs(])1478 5623 y Fo(-i)64 b Fk(image)98
b Fs(sp)5 b(eci\014es)54 b(a)g(heap)g(image)g(\014le)f(to)h(resume.)74
b(This)54 b(defaults)g(to)f(a)h(heap)g(image)1893 5822
y(that)h(runs)i(a)f(Sc)-5 b(heme)57 b(command)g(pro)5
b(cessor.)76 b(Heap)56 b(images)g(are)g(created)f(b)-5
b(y)57 b(the)1893 6021 y Fo(,dump)f Fs(and)g Fo(,build)88
b(commands)p Fs(,)57 b(for)e(whic)-5 b(h)56 b(see)g(b)5
b(elo)-5 b(w.)1478 6340 y Fo(-h)64 b Fk(he)-10 b(apsize)99
b Fs(sp)5 b(eci\014es)48 b(ho)-5 b(w)48 b(m)-5 b(uc)g(h)49
b(space)f(should)h(b)5 b(e)47 b(reserv)-5 b(ed)48 b(for)f(allo)5
b(cation.)71 b Fr(He)-8 b(ap-)1893 6539 y(size)67 b Fs(is)54
b(in)h(w)-5 b(ords)55 b(\(where)e(one)h(w)-5 b(ord)55
b(=)f(4)g(b)-5 b(ytes\),)55 b(and)f(co)-5 b(v)g(ers)55
b(b)5 b(oth)54 b(semispaces,)1893 6738 y(only)i(one)h(of)f(whic)-5
b(h)57 b(is)g(in)g(use)g(at)f(an)-5 b(y)57 b(giv)-5 b(en)57
b(time)f(\(except)f(during)i(garbage)g(col-)1893 6938
y(lection\).)115 b(Cons)70 b(cells)g(are)f(curren)-5
b(tly)70 b(3)f(w)-5 b(ords,)74 b(so)c(if)f(y)-5 b(ou)70
b(w)-5 b(an)g(t)70 b(to)f(mak)-5 b(e)70 b(sure)1893 7137
y(y)-5 b(ou)57 b(can)g(allo)5 b(cate)56 b(a)h(million)h(cons)f(cells,)h
(y)-5 b(ou)57 b(should)h(sp)5 b(ecify)59 b Fo(-h)87 b(6000000)59
b Fs(\(ac-)1893 7336 y(tually)47 b(somewhat)h(more)g(than)g(this,)i(to)
d(accoun)-5 b(t)48 b(for)f(the)h(initial)g(heap)g(image)g(and)1893
7535 y(breathing)71 b(ro)5 b(om\).)120 b(The)70 b(default)h(heap)g
(size)g(is)g(3000000)g(w)-5 b(ords.)121 b(The)71 b(system)1893
7735 y(will)55 b(use)g(a)f(larger)h(heap)g(if)f(the)g(sp)5
b(eci\014ed)55 b(\(or)f(default\))g(size)h(is)g(less)g(than)g(the)f
(size)1893 7934 y(of)h(the)g(image)h(b)5 b(eing)55 b(resumed.)1478
8253 y Fo(-a)64 b Fk(ar)-10 b(gument)70 b(.)29 b(.)g(.)113
b Fs(is)71 b(only)g(useful)g(with)g(images)g(built)g(using)h
Fo(,build)p Fs(.)121 b(The)71 b(argu-)1893 8452 y(men)-5
b(ts)81 b(are)f(passed)h(as)g(a)f(list)h(of)f(strings)h(to)f(the)g(pro)
5 b(cedure)80 b(sp)5 b(eci\014ed)80 b(in)h(the)1893 8651
y Fo(,build)56 b Fs(command)h(as)f(for)f(example:)1893
9016 y Fo(>)87 b(\(define)i(\(f)e(a\))h(\(for-each)g(display)h(a\))e
(\(newline\))i(0\))1893 9215 y(>)e(,build)h(f)g(foo.image)1893
9415 y(>)f(,exit)1893 9614 y(\045)g(scheme48vm)i(-i)f(foo.image)g(-a)g
(mumble)g("foo)g(x")1893 9813 y(mumblefoo)h(x)1893 10012
y(\045)4301 10511 y Fs(2)p eop end
%%Page: 3 11
TeXDict begin 3 10 bop 830 1046 a Fs(The)72 b(usual)h(de\014nition)g
(of)f(the)f Fo(s48)i Fs(or)f Fo(scheme48)i Fs(command)f(is)f(actually)g
(a)g(shell)581 1245 y(script)61 b(that)f(starts)h(up)g(the)f(Sc)-5
b(heme)61 b(48)g(virtual)f(mac)-5 b(hine)61 b(with)g(a)f
Fo(-i)88 b Fr(image\014le)74 b Fs(sp)5 b(ec-)581 1445
y(ifying)59 b(the)g(dev)-5 b(elopmen)g(t)60 b(en)-5 b(vironmen)g(t)61
b(heap)e(image)h(and)g(a)f Fo(-o)88 b Fr(vm-exe)-8 b(cutable)74
b Fs(sp)5 b(ec-)581 1644 y(ifying)59 b(the)f(lo)5 b(cation)59
b(of)g(the)f(virtual-mac)-5 b(hine)60 b(executable)e(\(the)g
(executable)g(is)i(needed)581 1843 y(for)74 b(loading)g(external)f(co)5
b(de)73 b(on)h(some)g(v)-5 b(ersions)75 b(of)e(Unix;)83
b(see)74 b(section)f(7.4)h(for)f(more)581 2042 y(information\).)104
b(The)65 b(\014le)h Fo(go)f Fs(in)h(the)f(Sc)-5 b(heme)66
b(48)f(installation)h(source)g(directory)e(is)i(an)581
2242 y(example)55 b(of)h(suc)-5 b(h)56 b(a)f(shell)i(script.)581
2787 y Fl(2.2)270 b(Command)91 b(pro)7 b(cessor)581 3151
y Fs(When)52 b(y)-5 b(ou)51 b(in)-5 b(v)g(ok)g(e)52 b(the)f(default)g
(heap)h(image,)h(a)e(command)i(pro)5 b(cessor)52 b(starts)f(running.)
581 3350 y(The)40 b(command)i(pro)5 b(cessor)41 b(acts)f(as)h(b)5
b(oth)40 b(a)g(read-ev)-9 b(al-prin)k(t)41 b(lo)5 b(op,)43
b(reading)e(expressions,)581 3549 y(ev)-9 b(aluating)63
b(them,)j(and)d(prin)-5 b(ting)65 b(the)e(results,)j(and)e(as)g(an)g
(in)-5 b(teractiv)g(e)62 b(debugger)i(and)581 3748 y(data)55
b(insp)5 b(ector.)74 b(See)55 b(Chapter)h(3)f(for)g(a)g(description)i
(of)e(the)g(command)h(pro)5 b(cessor.)581 4294 y Fl(2.3)270
b(Editing)581 4657 y Fs(W)-14 b(e)70 b(recommend)h(running)h(Sc)-5
b(heme)71 b(48)f(under)h(GNU)f(Emacs)h(or)f(XEmacs)h(using)g(the)581
4857 y Fo(cmuscheme48)46 b Fs(command)f(pac)-5 b(k)c(age.)70
b(This)44 b(is)h(in)f(the)g(Sc)-5 b(heme)44 b(48)g(distribution's)i
Fo(emacs/)581 5056 y Fs(sub)5 b(directory)49 b(and)h(is)g(included)g
(in)g(XEmacs's)g Fo(scheme)g Fs(pac)-5 b(k)c(age.)72
b(It)49 b(is)h(a)f(v)-9 b(arian)k(t)49 b(of)g(the)581
5255 y Fo(cmuscheme)83 b Fs(library)-14 b(,)88 b(whic)-5
b(h)82 b(comes)g(to)f(us)h(courtesy)e(of)h(Olin)h(Shiv)-5
b(ers,)89 b(formerly)81 b(of)581 5454 y(CMU.)55 b(Y)-14
b(ou)56 b(migh)-5 b(t)56 b(w)-5 b(an)g(t)56 b(to)f(put)g(the)g(follo)-5
b(wing)56 b(in)g(y)-5 b(our)55 b(Emacs)h(init)g(\014le)f(\()p
Fo(.emacs)p Fs(\):)581 5769 y Fo(\(setq)88 b(scheme-program-name)j
("scheme48"\))581 5968 y(\(autoload)e('run-scheme)1453
6167 y("cmuscheme48")1453 6367 y("Run)f(an)f(inferior)i(Scheme)f
(process.")1453 6566 y(t\))581 6880 y Fs(The)65 b(Emacs)g(function)g
Fo(run-scheme)h Fs(can)f(then)f(b)5 b(e)65 b(used)g(to)f(start)h(a)f
(pro)5 b(cess)66 b(running)581 7080 y(the)60 b(program)i
Fo(scheme48)g Fs(in)f(a)g(new)f(bu\013er.)90 b(T)-14
b(o)61 b(mak)-5 b(e)61 b(the)f Fo(autoload)i Fs(and)f
Fo(\(require)581 7279 y(...\))73 b Fs(forms)52 b(w)-5
b(ork,)52 b(y)-5 b(ou)52 b(will)f(also)h(need)f(to)g(put)h(the)e
(directory)h(con)-5 b(taining)54 b Fo(cmuscheme)581 7478
y Fs(and)i(related)f(\014les)h(in)g(y)-5 b(our)55 b(emacs)h(load-path:)
581 7793 y Fo(\(setq)88 b(load-path)755 7992 y(\(append)h(load-path)g
('\(")p Fr(scheme-48-dir)-8 b(e)g(ctory)15 b Fo(/emacs"\)\)\))581
8306 y Fs(F)-14 b(urther)69 b(do)5 b(cumen)-5 b(tation)68
b(can)h(b)5 b(e)67 b(found)i(in)g(the)f(\014les)g Fo
(emacs/cmuscheme48.el)k Fs(and)581 8506 y Fo(emacs/comint.el)p
Fs(.)581 9051 y Fl(2.4)270 b(P)-7 b(erformance)581 9415
y Fs(If)47 b(y)-5 b(ou)47 b(w)-5 b(an)g(t)47 b(to)f(generally)h(ha)-5
b(v)g(e)47 b(y)-5 b(our)47 b(co)5 b(de)46 b(run)h(faster)g(than)g(it)f
(normally)h(w)-5 b(ould,)50 b(en)-5 b(ter)581 9614 y
Fo(inline-values)75 b Fs(mo)5 b(de)74 b(b)5 b(efore)72
b(loading)i(an)-5 b(ything.)127 b(Otherwise)73 b(calls)h(to)f(primitiv)
-5 b(es)581 9813 y(\(lik)g(e)70 b Fo(+)h Fs(and)g Fo(cons)p
Fs(\))g(and)g(in-line)g(pro)5 b(cedures)71 b(\(lik)-5
b(e)71 b Fo(not)g Fs(and)g Fo(cadr)p Fs(\))f(w)-5 b(on't)71
b(b)5 b(e)70 b(op)5 b(en-)581 10012 y(co)g(ded,)55 b(and)h(programs)h
(will)e(run)h(more)g(slo)-5 b(wly)-14 b(.)3404 10511
y(3)p eop end
%%Page: 4 12
TeXDict begin 4 11 bop 1727 1046 a Fs(The)70 b(system)h(do)5
b(esn't)70 b(start)g(in)g Fo(inline-values)j Fs(mo)5
b(de)70 b(b)-5 b(y)71 b(default)e(b)5 b(ecause)71 b(the)1478
1245 y(Sc)-5 b(heme)79 b(rep)5 b(ort)78 b(p)5 b(ermits)79
b(rede\014nitions)h(of)e(built-in)i(pro)5 b(cedures.)144
b(With)78 b(this)h(mo)5 b(de)1478 1445 y(set,)70 b(suc)-5
b(h)69 b(rede\014nitions)f(don't)g(w)-5 b(ork)67 b(according)h(to)f
(the)g(rep)5 b(ort,)70 b(b)5 b(ecause)67 b(previously)1478
1644 y(compiled)f(calls)f(ma)-5 b(y)66 b(ha)-5 b(v)g(e)65
b(in-lined)i(the)d(old)i(de\014nition,)i(lea)-5 b(ving)65
b(no)h(opp)5 b(ortunit)-5 b(y)65 b(to)1478 1843 y(call)55
b(the)g(new)g(de\014nition.)1727 2045 y Fo(Inline-values)85
b Fs(mo)5 b(de)83 b(is)g(con)-5 b(trolled)83 b(b)-5 b(y)83
b(the)g Fo(inline-values)i Fs(switc)-5 b(h.)157 b Fo(,set)1478
2244 y(inline-values)57 b Fs(and)f Fo(,unset)88 b(inline-values)58
b Fs(turn)d(it)h(on)f(and)h(o\013.)1478 2808 y Fl(2.5)269
b(Disassem)-7 b(bler)1478 3177 y Fs(The)55 b Fo(,dis)h
Fs(command)h(prin)-5 b(ts)56 b(out)f(the)g(disassem)-5
b(bled)58 b(b)-5 b(yte)55 b(co)5 b(des)56 b(of)f(a)g(pro)5
b(cedure.)1478 3520 y Fo(>)87 b(,dis)h(cons)1478 3719
y(cons)1652 3919 y(0)f(\(protocol)i(2\))1652 4118 y(2)e(\(pop\))1652
4317 y(3)g(\(make-stored-object)k(2)c(pair\))1652 4516
y(6)g(\(return\))1478 4716 y(>)1478 5056 y Fs(The)49
b(curren)-5 b(t)49 b(b)-5 b(yte)49 b(co)5 b(des)49 b(are)g(listed)g(in)
g(the)g(\014le)g Fo(scheme/vm/arch.scm)p Fs(.)75 b(A)49
b(somewhat)1478 5255 y(out-of-date)55 b(description)h(of)f(them)h(can)f
(b)5 b(e)55 b(found)h(in)g([5].)1727 5457 y(The)e(command)h(argumen)-5
b(t)55 b(is)g(optional;)g(if)f(unsupplied)i(it)d(defaults)i(to)e(the)h
(curren)-5 b(t)1478 5657 y(fo)5 b(cus)55 b(ob)9 b(ject)55
b(\()p Fo(##)p Fs(\).)1727 5859 y(The)g(disassem)-5 b(bler)58
b(can)e(also)g(b)5 b(e)55 b(in)-5 b(v)g(ok)g(ed)56 b(on)f(con)-5
b(tin)g(uations)57 b(and)f(templates.)1478 6422 y Fl(2.6)269
b(Mo)7 b(dule)92 b(system)1478 6791 y Fs(This)66 b(section)f(giv)-5
b(es)66 b(a)f(brief)g(description)h(of)f(mo)5 b(dules)66
b(and)g(related)f(en)-5 b(tities.)103 b(F)-14 b(or)66
b(de-)1478 6990 y(tailed)40 b(information,)j(including)e(a)f
(description)h(of)e(the)h(mo)5 b(dule)40 b(con\014guration)h(language,)
1478 7190 y(see)55 b(c)-5 b(hapter)56 b(4.)1727 7392
y(A)77 b Fr(mo)-8 b(dule)77 b Fs(is)i(an)f(isolated)g(namespace,)84
b(with)77 b(visibilit)-5 b(y)78 b(of)g(bindings)h(con)-5
b(trolled)1478 7591 y(b)g(y)61 b(mo)5 b(dule)62 b(descriptions)g
(written)f(in)g(a)g(sp)5 b(ecial)62 b(con\014guration)f(language.)92
b(A)61 b(mo)5 b(dule)1478 7790 y(ma)-5 b(y)63 b(b)5 b(e)63
b(instan)-5 b(tiated)63 b(as)g(a)g Fr(p)-8 b(ackage)p
Fs(,)66 b(whic)-5 b(h)64 b(is)f(an)g(en)-5 b(vironmen)g(t)64
b(in)f(whic)-5 b(h)64 b(co)5 b(de)62 b(can)1478 7989
y(b)5 b(e)66 b(ev)-9 b(aluated.)106 b(Most)66 b(mo)5
b(dules)67 b(are)f(instan)-5 b(tiated)67 b(only)f(once)g(and)h(so)g(ha)
-5 b(v)g(e)67 b(a)f(unique)1478 8189 y(pac)-5 b(k)c(age.)101
b(A)64 b Fr(structur)-8 b(e)66 b Fs(is)f(a)g(subset)g(of)g(the)f
(bindings)i(in)f(a)g(pac)-5 b(k)c(age.)102 b(Only)64
b(b)-5 b(y)65 b(b)5 b(eing)1478 8388 y(included)76 b(in)f(a)g
(structure)g(can)g(a)g(binding)i(b)5 b(e)74 b(made)i(visible)f(in)h
(other)f(pac)-5 b(k)c(ages.)133 b(A)1478 8587 y(structure)47
b(has)h(t)-5 b(w)g(o)48 b(parts,)h(the)e(pac)-5 b(k)c(age)47
b(whose)h(bindings)h(are)e(b)5 b(eing)48 b(exp)5 b(orted)46
b(and)i(the)1478 8786 y(set)59 b(of)h(names)g(that)f(are)h(to)f(b)5
b(e)59 b(exp)5 b(orted.)86 b(This)61 b(set)e(of)h(names)g(is)h(called)e
(an)h Fr(interfac)-8 b(e)p Fs(.)1478 8986 y(A)55 b(mo)5
b(dule)55 b(then)h(has)g(three)f(parts:)1727 9326 y Fj(\017)83
b Fs(a)55 b(set)g(of)h(structures)f(whose)h(bindings)h(are)e(to)g(b)5
b(e)55 b(visible)h(within)g(the)f(mo)5 b(dule)1727 9669
y Fj(\017)83 b Fs(the)55 b(source)h(co)5 b(de)54 b(to)h(b)5
b(e)55 b(ev)-9 b(aluated)55 b(within)h(the)f(mo)5 b(dule)1727
10012 y Fj(\017)83 b Fs(a)55 b(set)g(of)h(exp)5 b(orted)54
b(in)-5 b(terfaces)4301 10511 y(4)p eop end
%%Page: 5 13
TeXDict begin 5 12 bop 581 1046 a Fs(Instan)-5 b(tiating)52
b(a)g(mo)5 b(dule)52 b(pro)5 b(duces)52 b(a)g(pac)-5
b(k)c(age)51 b(and)h(a)g(set)f(of)h(structures,)g(one)g(for)f(eac)-5
b(h)581 1245 y(of)55 b(the)g(exp)5 b(orted)55 b(in)-5
b(terfaces.)830 1460 y(The)52 b(follo)-5 b(wing)53 b(example)f(uses)i
Fo(define-structure)h Fs(to)c(create)g(a)i(mo)5 b(dule)52
b(that)g(im-)581 1660 y(plemen)-5 b(ts)53 b(simple)h(cells)e(as)h
(pairs,)h(instan)-5 b(tiates)53 b(this)f(mo)5 b(dule,)54
b(and)f(binds)g(the)f(resulting)581 1859 y(structure)61
b(to)g Fo(cells)p Fs(.)93 b(The)62 b(syn)-5 b(tax)61
b Fo(\(export)88 b Fr(name)66 b(.)25 b(.)g(.)g Fo(\))93
b Fs(creates)61 b(an)g(in)-5 b(terface)61 b(con-)581
2058 y(taining)67 b Fr(name)i(.)25 b(.)g(.)g Fs(.)102
b(The)65 b Fo(open)g Fs(clause)g(lists)h(structures)e(whose)h(bindings)
i(are)d(visible)581 2257 y(within)56 b(the)f(mo)5 b(dule.)74
b(The)55 b Fo(begin)i Fs(clause)e(con)-5 b(tains)57 b(source)e(co)5
b(de.)581 2653 y Fo(\(define-structure)90 b(cells)e(\(export)h
(make-cell)3371 2852 y(cell-ref)3371 3051 y(cell-set!\))755
3251 y(\(open)g(scheme\))755 3450 y(\(begin)g(\(define)f(\(make-cell)h
(x\))1540 3649 y(\(cons)f('cell)g(x\)\))1366 3848 y(\(define)g
(cell-ref)h(cdr\))1366 4048 y(\(define)f(cell-set!)h(set-cdr!\)\)\))830
4427 y Fs(Cells)64 b(could)g(also)h(ha)-5 b(v)g(e)64
b(b)5 b(een)63 b(implemen)-5 b(ted)65 b(using)f(the)g(record)f(facilit)
-5 b(y)63 b(describ)5 b(ed)581 4626 y(in)56 b(section)f(5.10)h(and)g(a)
-5 b(v)c(ailable)55 b(in)h(structure)f Fo(define-record-type)p
Fs(.)581 5022 y Fo(\(define-structure)90 b(cells)e(\(export)h
(make-cell)3371 5221 y(cell-ref)3371 5420 y(cell-set!\))755
5619 y(\(open)g(scheme)f(define-record-types\))755 5819
y(\(begin)h(\(define-record-type)h(cell)e(:cell)1540
6018 y(\(make-cell)h(value\))1540 6217 y(cell?)1540 6416
y(\(value)f(cell-ref)h(cell-set!\)\)\)\))830 6796 y Fs(With)58
b(either)f(de\014nition)h(the)g(resulting)g(structure)g(can)f(b)5
b(e)58 b(used)g(in)g(other)g(mo)5 b(dules)581 6995 y(b)-5
b(y)56 b(including)j Fo(cells)d Fs(in)g(an)f Fo(open)h
Fs(clause.)830 7210 y(The)65 b(command)g(in)-5 b(terpreter)65
b(is)g(alw)-5 b(a)g(ys)65 b(op)5 b(erating)65 b(within)f(a)h
(particular)g(pac)-5 b(k)c(age.)581 7410 y(Initially)59
b(this)h(is)g(a)f(pac)-5 b(k)c(age)59 b(in)g(whic)-5
b(h)60 b(only)f(the)g(standard)h(Sc)-5 b(heme)60 b(bindings)h(are)e
(vis-)581 7609 y(ible.)88 b(The)60 b(bindings)i(of)e(other)g
(structures)g(can)g(b)5 b(e)60 b(made)g(visible)h(b)-5
b(y)60 b(using)h(the)f Fo(,open)581 7808 y Fs(command)d(describ)5
b(ed)55 b(in)h(section)f(3.4)h(b)5 b(elo)-5 b(w.)830
8023 y(Note)63 b(that)f(this)i(initial)g(pac)-5 b(k)c(age)63
b(do)5 b(es)64 b(not)f(include)h(the)f(con\014guration)h(language.)581
8222 y(Mo)5 b(dule)58 b(co)5 b(de)56 b(needs)i(to)f(b)5
b(e)56 b(ev)-9 b(aluated)57 b(in)g(the)g(con\014guration)h(pac)-5
b(k)c(age,)57 b(whic)-5 b(h)58 b(can)f(b)5 b(e)581 8422
y(done)56 b(b)-5 b(y)55 b(using)i(the)e Fo(,)p Fs(con\014g)h(command:)
581 8817 y Fo(>)87 b(,config)i(\(define-structure)h(cells)e(...\))581
9016 y(>)f(,open)i(cells)581 9215 y(>)e(\(make-cell)i(4\))581
9415 y('\(cell)f(.)g(4\))581 9614 y(>)f(\(define)i(c)e(\(make-cell)i
(4\)\))581 9813 y(>)e(\(cell-ref)i(c\))581 10012 y(4)3404
10511 y Fs(5)p eop end
%%Page: 6 14
TeXDict begin 6 13 bop 1478 1046 a Fl(2.7)269 b(Library)1478
1410 y Fs(A)62 b(n)-5 b(um)g(b)5 b(er)65 b(of)e(useful)g(utilities)h
(are)f(either)f(built)i(in)f(to)g(Sc)-5 b(heme)64 b(48)f(or)g(can)g(b)5
b(e)63 b(loaded)1478 1609 y(from)53 b(an)g(external)g(library)-14
b(.)73 b(These)54 b(utilities)f(are)g(not)g(visible)h(in)f(the)g(user)g
(en)-5 b(vironmen)g(t)1478 1808 y(b)g(y)63 b(default,)h(but)f(can)g(b)5
b(e)62 b(made)h(a)-5 b(v)c(ailable)63 b(with)g(the)f
Fo(open)i Fs(command.)97 b(F)-14 b(or)63 b(example,)1478
2008 y(to)55 b(use)h(the)f Fo(tables)h Fs(structure,)f(do)1478
2340 y Fo(>)87 b(,open)h(tables)1478 2539 y(>)1727 2871
y Fs(If)44 b(the)f(utilit)-5 b(y)44 b(is)h(not)f(already)g(loaded,)j
(then)d(the)g Fo(,open)h Fs(command)g(will)g(load)f(it.)70
b(Or,)1478 3070 y(y)-5 b(ou)49 b(can)g(load)g(something)h(explicitly)e
(\(without)g(op)5 b(ening)49 b(it\))f(using)i(the)e Fo(load-package)
1478 3269 y Fs(command:)1478 3602 y Fo(>)87 b(,load-package)j(queues)
1478 3801 y(>)d(,open)h(queues)1727 4133 y Fs(When)51
b(loading)h(a)f(utilit)-5 b(y)-14 b(,)52 b(the)f(message)h("Note:)71
b(optional)51 b(optimizer)g(not)g(in)-5 b(v)g(ok)g(ed")1478
4332 y(is)56 b(inno)5 b(cuous.)75 b(F)-14 b(eel)55 b(free)g(to)g
(ignore)h(it.)1727 4531 y(See)f(also)h(the)f(pac)-5 b(k)c(age)55
b(system)h(do)5 b(cumen)-5 b(tation,)56 b(in)f(c)-5 b(hapter)56
b(4.)1727 4731 y(Not)49 b(all)i(of)f(the)g(the)g(libraries)i(a)-5
b(v)c(ailable)50 b(in)h(Sc)-5 b(heme)51 b(48)g(are)f(describ)5
b(ed)51 b(in)f(this)h(man-)1478 4930 y(ual.)68 b(All)37
b(are)f(listed)i(in)f(\014les)g Fo(rts-packages.scm)p
Fs(,)44 b Fo(comp-packages.scm)p Fs(,)g Fo(env-packages.scm)p
Fs(,)1478 5129 y(and)68 b Fo(more-packages.scm)i Fs(in)e(the)f
Fo(scheme)h Fs(directory)f(of)g(the)g(distribution,)72
b(and)c(the)1478 5328 y(bindings)56 b(they)e(exp)5 b(ort)54
b(are)g(listed)h(in)g Fo(interfaces.scm)i Fs(and)e Fo
(more-interfaces.scm)1478 5528 y Fs(in)h(the)e(same)j(directory)-14
b(.)4301 10511 y(6)p eop end
%%Page: 7 15
TeXDict begin 7 14 bop 581 2291 a Fn(Chapter)130 b(3)581
3122 y Fq(Command)156 b(pro)13 b(cessor)581 3985 y Fs(This)57
b(c)-5 b(hapter)57 b(details)g(Sc)-5 b(heme)57 b(48's)g(command)h(pro)5
b(cessor,)57 b(whic)-5 b(h)57 b(incorp)5 b(orates)57
b(b)5 b(oth)581 4184 y(a)62 b(read-ev)-9 b(al-prin)k(t)63
b(lo)5 b(op)62 b(and)h(an)f(in)-5 b(teractiv)g(e)61 b(debugger.)95
b(A)-5 b(t)61 b(the)h Fo(>)g Fs(prompt,)i(y)-5 b(ou)63
b(can)581 4384 y(t)-5 b(yp)5 b(e)62 b(either)h(a)g(Sc)-5
b(heme)63 b(form)g(\(expression)h(or)f(de\014nition\))g(or)g(a)g
(command)h(b)5 b(eginning)581 4583 y(with)64 b(a)g(comma.)101
b(In)64 b(insp)5 b(ection)64 b(mo)5 b(de)64 b(\(see)g(section)g(3.7\))g
(the)f(prompt)i(c)-5 b(hanges)65 b(to)e Fo(:)581 4782
y Fs(and)43 b(commands)g(no)g(longer)f(need)g(to)g(b)5
b(e)42 b(preceded)g(b)-5 b(y)42 b(a)g(comma;)47 b(input)c(b)5
b(eginning)43 b(with)581 4981 y(a)57 b(letter)e(or)i(digit)g(is)g
(assumed)h(to)e(b)5 b(e)57 b(a)f(command,)j(not)d(an)h(expression.)79
b(In)56 b(insp)5 b(ection)581 5181 y(mo)g(de)65 b(the)f(command)i(pro)5
b(cessor)66 b(prin)-5 b(ts)66 b(out)e(a)h(men)-5 b(u)66
b(of)f(selectable)f(comp)5 b(onen)-5 b(ts)66 b(for)581
5380 y(the)55 b(curren)-5 b(t)56 b(ob)9 b(ject)54 b(of)h(in)-5
b(terest.)581 5929 y Fl(3.1)270 b(Curren)-7 b(t)89 b(fo)7
b(cus)91 b(v)-15 b(alue)90 b(and)g Fi(##)581 6293 y Fs(The)77
b(command)h(pro)5 b(cessor)78 b(k)-5 b(eeps)77 b(trac)-5
b(k)77 b(of)f(a)h(curren)-5 b(t)78 b Fr(fo)-8 b(cus)79
b(value)p Fs(.)140 b(This)77 b(v)-9 b(alue)77 b(is)581
6492 y(normally)48 b(the)f(last)g(v)-9 b(alue)47 b(returned)g(b)-5
b(y)48 b(a)f(command.)72 b(If)47 b(a)h(command)g(returns)g(m)-5
b(ultiple)581 6691 y(v)c(alues)65 b(the)f(fo)5 b(cus)65
b(ob)9 b(ject)64 b(is)h(a)g(list)g(of)g(the)f(v)-9 b(alues.)102
b(The)65 b(fo)5 b(cus)65 b(v)-9 b(alue)64 b(is)h(not)g(c)-5
b(hanged)581 6891 y(if)54 b(a)g(command)h(returns)g(no)f(v)-9
b(alues)54 b(or)g(a)g(distinguished)i(`unsp)5 b(eci\014c')55
b(v)-9 b(alue.)73 b(Examples)581 7090 y(of)54 b(forms)h(that)e(return)h
(this)g(unsp)5 b(eci\014c)55 b(v)-9 b(alue)54 b(are)f(de\014nitions,)j
(uses)f(of)67 b Fo(set!)p Fs(,)55 b(and)f Fo(\(if)581
7289 y(#f)88 b(0\))p Fs(.)74 b(It)55 b(prin)-5 b(ts)56
b(as)g Fo(#)p Fj(f)p Fo(Unspecific)p Fj(g)p Fs(.)830
7488 y(The)c(reader)g(used)h(b)-5 b(y)52 b(the)f(command)i(pro)5
b(cessor)53 b(reads)f Fo(##)g Fs(as)h(a)f(sp)5 b(ecial)52
b(expression)581 7688 y(that)j(ev)-9 b(aluates)55 b(to)g(the)g(curren)
-5 b(t)55 b(fo)5 b(cus)55 b(ob)9 b(ject.)581 8020 y Fo(>)87
b(\(list)i('a)e('b\))581 8219 y('\(a)h(b\))581 8418 y(>)f(\(car)h(##\))
581 8618 y('a)581 8817 y(>)f(\(symbol->string)j(##\))581
9016 y("a")581 9215 y(>)d(\(if)h(#f)g(0\))581 9415 y(#)p
Fj(f)p Fo(Unspecific)p Fj(g)581 9614 y Fo(>)f(##)581
9813 y("a")581 10012 y(>)3404 10511 y Fs(7)p eop end
%%Page: 8 16
TeXDict begin 8 15 bop 1478 1046 a Fl(3.2)269 b(Command)92
b(lev)-7 b(els)1478 1435 y Fs(If)58 b(an)h(error,)h(k)-5
b(eyb)5 b(oard)58 b(in)-5 b(terrupt,)60 b(or)f(other)f(breakp)5
b(oin)-5 b(t)59 b(o)5 b(ccurs,)59 b(or)g(the)f Fo(,push)i
Fs(com-)1478 1634 y(mand)71 b(is)g(used,)j(the)c(command)h(pro)5
b(cessor)71 b(in)-5 b(v)g(ok)g(es)71 b(a)f(recursiv)-5
b(e)71 b(cop)-5 b(y)70 b(of)g(itself,)k(pre-)1478 1834
y(serving)66 b(the)g(dynamic)g(state)g(of)g(the)f(program)i(when)f(the)
g(breakp)5 b(oin)-5 b(t)66 b(o)5 b(ccured.)105 b(The)1478
2033 y(recursiv)-5 b(e)67 b(in)-5 b(v)g(o)5 b(cation)67
b(creates)g(a)g(new)g Fr(c)-8 b(ommand)69 b(level)p Fs(.)111
b(The)67 b(command)h(lev)-5 b(els)67 b(form)1478 2232
y(a)61 b(stac)-5 b(k)61 b(with)g(the)f(curren)-5 b(t)61
b(lev)-5 b(el)61 b(at)g(the)f(top.)91 b(The)61 b(command)h(prompt)f
(indicates)h(the)1478 2431 y(n)-5 b(um)g(b)5 b(er)62
b(of)g(stopp)5 b(ed)61 b(lev)-5 b(els)62 b(b)5 b(elo)-5
b(w)61 b(the)g(curren)-5 b(t)62 b(one:)86 b Fo(>)61 b
Fs(or)h Fo(:)86 b Fs(for)61 b(the)g(base)h(lev)-5 b(el)61
b(and)1478 2631 y Fr(n)13 b Fo(>)79 b Fs(or)g Fr(n)13
b Fo(:)122 b Fs(for)78 b(all)i(other)e(lev)-5 b(els,)86
b(where)79 b Fr(n)92 b Fs(is)80 b(the)e(command-lev)-5
b(el)81 b(nesting)e(depth.)1478 2830 y(The)53 b Fo(auto-levels)h
Fs(switc)-5 b(h)54 b(describ)5 b(ed)53 b(b)5 b(elo)-5
b(w)53 b(can)g(b)5 b(e)53 b(used)h(to)e(disable)i(the)f(automatic)1478
3029 y(pushing)k(of)e(new)g(lev)-5 b(els.)1727 3242 y(The)37
b(command)h(pro)5 b(cessor's)38 b(ev)-9 b(aluation)36
b(pac)-5 b(k)c(age)37 b(and)g(the)g(v)-9 b(alue)36 b(of)h(the)f
Fo(inspect-focus-value)1478 3441 y Fs(switc)-5 b(h)62
b(are)f(lo)5 b(cal)61 b(to)f(eac)-5 b(h)62 b(command)g(lev)-5
b(el.)92 b(They)61 b(are)g(preserv)-5 b(ed)61 b(when)h(a)f(new)g(lev)-5
b(el)1478 3641 y(is)60 b(pushed)h(and)f(restored)g(when)f(it)h(is)g
(discarded.)88 b(The)59 b(settings)h(of)f(all)h(other)f(switc)-5
b(hes)1478 3840 y(are)55 b(shared)h(b)-5 b(y)56 b(all)f(command)i(lev)
-5 b(els.)1561 4260 y Fj(h)p Fs(eof)p Fj(i)1893 4459
y Fs(Discards)54 b(the)f(curren)-5 b(t)53 b(command)h(lev)-5
b(el)53 b(and)h(resumes)g(running)h(the)d(lev)-5 b(el)53
b(do)-5 b(wn.)1893 4658 y Fj(h)p Fs(eof)p Fj(i)61 b Fs(is)j(usually)f
(con)-5 b(trol-)p Fo(D)64 b Fs(at)e(a)h(Unix)f(shell)h(or)g(con)-5
b(trol-)p Fo(C)63 b Fs(con)-5 b(trol-)p Fo(D)64 b Fs(using)g(the)1893
4858 y(Emacs)56 b Fo(cmuscheme48)h Fs(library)-14 b(.)1561
5244 y Fo(,pop)1893 5444 y Fs(The)55 b(same)h(as)g Fj(h)p
Fs(eof)p Fj(i)p Fs(.)1561 5830 y Fo(,proceed)88 b([)p
Fr(exp)98 b Fo(...)p Fs(])1893 6030 y(Pro)5 b(ceed)78
b(after)g(an)h(in)-5 b(terrupt)80 b(or)f(error,)84 b(resuming)d(the)d
(next)g(command)i(lev)-5 b(el)1893 6229 y(do)g(wn,)84
b(deliv)-5 b(ering)78 b(the)e(v)-9 b(alues)78 b(of)90
b Fr(exp)80 b(.)25 b(.)g(.)166 b Fs(to)76 b(the)h(con)-5
b(tin)g(uation.)141 b(In)-5 b(terrupt)1893 6428 y(con)g(tin)g(uations)
64 b(discard)f(an)-5 b(y)62 b(returned)g(v)-9 b(alues.)95
b Fo(,Pop)63 b Fs(and)f Fo(,proceed)i Fs(ha)-5 b(v)g(e)63
b(the)1893 6627 y(same)40 b(e\013ect)f(after)g(an)h(in)-5
b(terrupt)40 b(but)g(b)5 b(eha)-5 b(v)g(e)40 b(di\013eren)-5
b(tly)40 b(after)f(errors.)69 b Fo(,Proceed)1893 6827
y Fs(restarts)76 b(the)f(erroneous)i(computation)f(from)g(the)f(p)5
b(oin)-5 b(t)77 b(where)e(the)h(error)g(o)5 b(c-)1893
7026 y(curred)72 b(\(although)g(not)f(all)h(errors)g(are)g(pro)5
b(ceedable\))71 b(while)h Fo(,pop)g Fs(\(and)g Fj(h)p
Fs(eof)p Fj(i)p Fs(\))1893 7225 y(discards)57 b(it)e(and)h(prompts)g
(for)f(a)g(new)h(command.)1561 7612 y Fo(,push)1893 7811
y Fs(Pushes)62 b(a)g(new)f(command)h(lev)-5 b(el)62 b(on)f(ab)5
b(o)-5 b(v)g(e)61 b(the)g(curren)-5 b(t)62 b(one.)92
b(This)62 b(is)g(useful)f(if)1893 8010 y(the)e Fo(auto-levels)j
Fs(switc)-5 b(h)60 b(has)g(b)5 b(een)59 b(used)h(to)g(disable)g(the)f
(automatic)h(pushing)1893 8210 y(of)55 b(new)g(lev)-5
b(els)56 b(for)f(errors)h(and)g(in)-5 b(terrupts.)1561
8596 y Fo(,reset)88 b([)p Fr(numb)-8 b(er)18 b Fo(])1893
8796 y Fs(P)-5 b(ops)39 b(do)-5 b(wn)39 b(to)e(a)h(giv)-5
b(en)39 b(lev)-5 b(el)37 b(and)i(restarts)f(that)f(lev)-5
b(el.)68 b Fr(Numb)-8 b(er)57 b Fs(defaults)38 b(to)g(zero,)1893
8995 y Fo(,reset)56 b Fs(restarts)g(the)f(command)h(pro)5
b(cessor,)56 b(discarding)h(all)e(existing)h(lev)-5 b(els.)1727
9415 y(Whenev)g(er)48 b(mo)-5 b(ving)49 b(to)e(an)i(existing)f(lev)-5
b(el,)50 b(either)d(b)-5 b(y)49 b(sending)g(an)g Fj(h)p
Fs(eof)p Fj(i)d Fs(or)j(b)-5 b(y)48 b(using)1478 9614
y Fo(,reset)68 b Fs(or)f(the)f(other)h(commands)h(listed)f(ab)5
b(o)-5 b(v)g(e,)70 b(the)d(command)h(pro)5 b(cessor)67
b(runs)h(all)1478 9813 y(of)52 b(the)h Fo(dynamic-wind)i
Fs(\\after")d(th)-5 b(unks)53 b(b)5 b(elonging)54 b(to)e(stopp)5
b(ed)53 b(computations)h(on)f(the)1478 10012 y(discarded)j(lev)-5
b(el\(s\).)4301 10511 y(8)p eop end
%%Page: 9 17
TeXDict begin 9 16 bop 581 1046 a Fl(3.3)270 b(Logistical)88
b(commands)664 1411 y Fo(,load)g Fr(\014lename)61 b(.)25
b(.)g(.)996 1611 y Fs(Loads)38 b(the)e(named)i(Sc)-5
b(heme)37 b(source)h(\014le\(s\).)67 b(Easier)38 b(to)e(t)-5
b(yp)5 b(e)36 b(than)h Fo(\(load)88 b(")p Fr(\014lename)12
b Fo("\))996 1810 y Fs(b)5 b(ecause)63 b(y)-5 b(ou)63
b(don't)h(ha)-5 b(v)g(e)63 b(to)f(shift)i(to)e(t)-5 b(yp)5
b(e)62 b(the)h(paren)-5 b(theses)64 b(or)f(quote)f(marks.)996
2009 y(\(Ho)-5 b(w)g(ev)g(er,)44 b(it)e(is)g(still)g(p)5
b(ossible)43 b(to)f(sp)5 b(ecify)41 b(a)h(\014lename)g(as)g(a)g(Sc)-5
b(heme)42 b(string)h(literal,)996 2208 y(with)60 b(quote)e(marks|y)-5
b(ou'll)61 b(need)e(this)h(for)f(\014lenames)i(con)-5
b(taining)60 b(whitespace.\))996 2408 y(Also,)52 b(it)e(w)-5
b(orks)51 b(in)g(an)-5 b(y)50 b(pac)-5 b(k)c(age,)52
b(unlik)-5 b(e)51 b Fo(\(load)88 b(")p Fr(\014lename)12
b Fo("\))p Fs(,)54 b(whic)-5 b(h)51 b(will)g(w)-5 b(ork)996
2607 y(only)50 b(w)-5 b(ork)50 b(in)g(pac)-5 b(k)c(ages)50
b(in)g(whic)-5 b(h)50 b(the)g(v)-9 b(ariable)49 b Fo(load)i
Fs(is)f(de\014ned)g(appropriately)-14 b(.)664 2943 y
Fo(,exit)88 b([)p Fr(exp)10 b Fo(])38 b Fs(Exits)f(bac)-5
b(k)37 b(out)g(to)f(shell)i(\(or)e(executiv)-5 b(e)36
b(or)h(whatev)-5 b(er)36 b(in)-5 b(v)g(ok)g(ed)38 b(Sc)-5
b(heme)38 b(48)996 3142 y(in)63 b(the)f(\014rst)h(place\).)95
b Fr(Exp)72 b Fs(should)64 b(ev)-9 b(aluate)62 b(to)g(an)g(in)-5
b(teger.)96 b(The)62 b(in)-5 b(teger)62 b(is)h(re-)996
3341 y(turned)51 b(to)e(the)h(calling)h(program.)73 b(The)50
b(default)g(v)-9 b(alue)50 b(of)63 b Fr(exp)e Fs(is)50
b(zero,)h(whic)-5 b(h,)52 b(on)996 3540 y(Unix,)j(is)h(generally)f(in)
-5 b(terpreted)56 b(as)f(success.)581 4094 y Fl(3.4)270
b(Mo)7 b(dule)91 b(commands)581 4459 y Fs(There)55 b(are)g(man)-5
b(y)56 b(commands)h(related)e(to)g(mo)5 b(dules.)75 b(Only)55
b(the)g(most)h(commonly)g(used)581 4659 y(mo)5 b(dule)52
b(commands)i(are)e(describ)5 b(ed)52 b(here;)h(do)5 b(cumen)-5
b(tation)52 b(for)g(the)f(rest)h(can)g(b)5 b(e)51 b(found)581
4858 y(in)78 b(section)f(4.8.)140 b(There)77 b(is)h(also)g(a)g(brief)f
(description)h(of)f(mo)5 b(dules,)84 b(structures,)f(and)581
5057 y(pac)-5 b(k)c(ages)56 b(in)f(section)h(2.6)f(b)5
b(elo)-5 b(w.)664 5426 y Fo(,open)88 b Fr(structur)-8
b(e)60 b(.)25 b(.)g(.)996 5625 y Fs(Mak)-5 b(es)61 b(the)e(bindings)i
(in)g(the)e Fr(structur)-8 b(e)12 b Fs(s)61 b(visible)g(in)f(the)f
(curren)-5 b(t)60 b(pac)-5 b(k)c(age.)87 b(The)996 5825
y(pac)-5 b(k)c(ages)63 b(asso)5 b(ciated)62 b(with)h(the)e
Fr(structur)-8 b(e)12 b Fs(s)65 b(will)d(b)5 b(e)62 b(loaded)h(if)f
(this)h(has)g(not)f(al-)996 6024 y(ready)44 b(b)5 b(een)43
b(done)i(\(the)e Fo(ask-before-loading)k Fs(switc)-5
b(h)44 b(can)g(b)5 b(e)43 b(used)i(disable)g(the)996
6223 y(automatic)55 b(loading)i(of)e(pac)-5 b(k)c(ages\).)664
6559 y Fo(,config)89 b([)p Fr(c)-8 b(ommand)17 b Fo(])996
6758 y Fs(Executes)77 b Fr(c)-8 b(ommand)94 b Fs(in)77
b(the)g Fo(config)h Fs(pac)-5 b(k)c(age,)83 b(whic)-5
b(h)78 b(includes)g(the)f(mo)5 b(dule)996 6957 y(con\014guration)56
b(language.)75 b(F)-14 b(or)56 b(example,)f(use)996 7359
y Fo(,config)89 b(,load)f Fr(\014lename)996 7761 y Fs(to)59
b(load)g(a)g(\014le)g(con)-5 b(taining)60 b(mo)5 b(dule)59
b(de\014nitions.)85 b(If)59 b(no)g Fr(c)-8 b(ommand)76
b Fs(is)59 b(giv)-5 b(en,)60 b(the)996 7961 y Fo(config)d
Fs(pac)-5 b(k)c(age)55 b(b)5 b(ecomes)55 b(the)g(execution)g(pac)-5
b(k)c(age)55 b(for)g(future)g(commands.)664 8296 y Fo(,user)88
b([)p Fr(c)-8 b(ommand)17 b Fo(])996 8496 y Fs(This)52
b(is)g(similar)g(to)f(the)f Fo(,config)p Fs(.)74 b(It)51
b(mo)-5 b(v)g(es)52 b(to)e(or)h(executes)g(a)g(command)h(in)f(the)996
8695 y(user)g(pac)-5 b(k)c(age)49 b(\(whic)-5 b(h)50
b(is)g(the)g(default)f(pac)-5 b(k)c(age)49 b(when)h(the)g(Sc)-5
b(heme)50 b(48)g(command)996 8894 y(pro)5 b(cessor)56
b(starts\).)581 9448 y Fl(3.5)270 b(Debugging)92 b(commands)664
9813 y Fo(,preview)996 10012 y Fs(Somewhat)51 b(lik)-5
b(e)50 b(a)g(bac)-5 b(ktrace,)51 b(but)f(b)5 b(ecause)50
b(of)g(tail)g(recursion)h(y)-5 b(ou)50 b(see)h(less)g(than)3404
10511 y(9)p eop end
%%Page: 10 18
TeXDict begin 10 17 bop 1893 1046 a Fs(y)-5 b(ou)54 b(migh)-5
b(t)55 b(in)f(debuggers)h(for)f(some)g(other)g(languages.)74
b(The)54 b(stac)-5 b(k)54 b(to)f(displa)-5 b(y)56 b(is)1893
1245 y(c)-5 b(hosen)56 b(as)g(follo)-5 b(ws:)2046 1565
y(1.)83 b(If)66 b(the)f(curren)-5 b(t)66 b(fo)5 b(cus)66
b(ob)9 b(ject)65 b(is)i(a)f(con)-5 b(tin)g(uation)67
b(or)f(a)g(thread,)i(then)e(that)2258 1765 y(con)-5 b(tin)g(uation)57
b(or)e(thread's)h(stac)-5 b(k)55 b(is)h(displa)-5 b(y)g(ed.)2046
2018 y(2.)83 b(Otherwise,)68 b(if)c(the)h(curren)-5 b(t)64
b(command)i(lev)-5 b(el)65 b(w)-5 b(as)65 b(initiated)g(b)5
b(ecause)65 b(of)f(a)2258 2217 y(breakp)5 b(oin)-5 b(t)52
b(in)h(the)e(next)h(lev)-5 b(el)52 b(do)-5 b(wn,)53 b(then)f(the)g
(stac)-5 b(k)52 b(at)g(that)f(breakp)5 b(oin)-5 b(t)2258
2417 y(is)56 b(displa)-5 b(y)g(ed.)2046 2670 y(3.)83
b(Otherwise,)67 b(there)d(is)h(no)g(stac)-5 b(k)64 b(to)g(displa)-5
b(y)66 b(and)f(a)f(message)i(is)f(prin)-5 b(ted)65 b(to)2258
2870 y(that)55 b(e\013ect.)1893 3190 y(One)65 b(line)g(is)h(prin)-5
b(ted)65 b(out)g(for)f(eac)-5 b(h)65 b(con)-5 b(tin)g(uation)66
b(on)f(the)g(c)-5 b(hosen)66 b(stac)-5 b(k,)67 b(going)1893
3389 y(from)55 b(top)h(to)f(b)5 b(ottom.)1561 3709 y
Fo(,run)88 b Fr(exp)1893 3908 y Fs(Ev)-9 b(aluate)48
b Fr(exp)10 b Fs(,)52 b(prin)-5 b(ting)50 b(the)f(result\(s\))h(and)f
(making)h(them)g(\(or)f(a)g(list)h(of)f(them,)h(if)1893
4107 y Fr(exp)62 b Fs(returns)52 b(m)-5 b(ultiple)52
b(results\))g(the)f(new)g(fo)5 b(cus)52 b(ob)9 b(ject.)72
b(The)51 b Fo(,run)h Fs(command)h(is)1893 4307 y(useful)41
b(when)f(writing)g(command)h(programs,)k(whic)-5 b(h)41
b(are)f(describ)5 b(ed)40 b(in)h(section)f(3.8)1893 4506
y(b)5 b(elo)-5 b(w.)1561 4826 y Fo(,trace)88 b Fr(name)100
b Fo(...)1893 5025 y Fs(Start)56 b(tracing)h(calls)g(to)f(the)g(named)i
(pro)5 b(cedure)56 b(or)h(pro)5 b(cedures.)78 b(With)57
b(no)g(argu-)1893 5224 y(men)-5 b(ts,)47 b(displa)-5
b(ys)45 b(all)e(pro)5 b(cedures)44 b(curren)-5 b(tly)43
b(traced.)70 b(This)44 b(a\013ects)f(the)g(binding)i(of)1893
5424 y Fr(name)12 b Fs(,)48 b(not)d(the)f(b)5 b(eha)-5
b(vior)45 b(of)g(the)g(pro)5 b(cedure)45 b(that)f(is)h(its)h(curren)-5
b(t)45 b(v)-9 b(alue.)70 b Fr(Name)58 b Fs(is)1893 5623
y(rede\014ned)c(to)e(b)5 b(e)53 b(a)h(pro)5 b(cedure)53
b(that)f(prin)-5 b(ts)55 b(a)e(message,)i(calls)f(the)f(original)h(v)-9
b(alue)1893 5822 y(of)88 b Fr(name)12 b Fs(,)82 b(prin)-5
b(ts)77 b(another)e(message,)82 b(and)76 b(\014nally)g(passes)i(along)e
(the)f(v)-9 b(alue\(s\))1893 6021 y(returned)55 b(b)-5
b(y)56 b(the)f(original)h(pro)5 b(cedure.)1561 6341 y
Fo(,untrace)88 b Fr(name)100 b Fo(...)1893 6541 y Fs(Stop)60
b(tracing)f(calls)h(to)f(the)g(named)i(pro)5 b(cedure)59
b(or)h(pro)5 b(cedures.)87 b(With)59 b(no)h(argu-)1893
6740 y(men)-5 b(t,)56 b(stop)f(tracing)h(all)f(calls)h(to)f(all)h(pro)5
b(cedures.)1561 7060 y Fo(,condition)1893 7259 y Fs(The)71
b Fo(,condition)i Fs(command)f(displa)-5 b(ys)73 b(the)d(condition)i
(ob)9 b(ject)70 b(describing)j(the)1893 7458 y(error)44
b(or)g(in)-5 b(terrupt)44 b(that)g(initiated)g(the)f(curren)-5
b(t)45 b(command)g(lev)-5 b(el.)70 b(The)44 b(condition)1893
7658 y(ob)9 b(ject)80 b(b)5 b(ecomes)81 b(the)g(curren)-5
b(t)81 b(fo)5 b(cus)81 b(v)-9 b(alue.)150 b(This)82 b(is)f
(particularly)g(useful)h(in)1893 7857 y(conjunction)c(with)f(the)g
(insp)5 b(ector.)141 b(F)-14 b(or)79 b(example,)k(if)78
b(a)f(pro)5 b(cedure)78 b(is)g(passed)1893 8056 y(the)50
b(wrong)g(n)-5 b(um)g(b)5 b(er)52 b(of)e(argumen)-5 b(ts,)53
b(do)d Fo(,condition)i Fs(follo)-5 b(w)g(ed)51 b(b)-5
b(y)51 b Fo(,inspect)h Fs(to)1893 8255 y(insp)5 b(ect)55
b(the)g(pro)5 b(cedure)55 b(and)h(its)g(argumen)-5 b(ts.)1561
8575 y Fo(,bound?)88 b Fr(name)1893 8775 y Fs(Displa)-5
b(y)71 b(the)e(binding)i(of)83 b Fr(name)12 b Fs(,)75
b(if)69 b(there)h(is)g(one,)k(and)d(otherwise)f(prin)-5
b(ts)71 b(`)p Fo(Not)1893 8974 y(bound)p Fs('.)1561 9294
y Fo(,expand)88 b Fr(form)1561 9614 y Fo(,expand-all)h
Fr(form)1893 9813 y Fs(Sho)-5 b(w)58 b(macro)g(expansion)g(of)70
b Fr(form)13 b Fs(,)58 b(if)f(an)-5 b(y)-14 b(.)81 b
Fo(,expand)58 b Fs(p)5 b(erforms)58 b(a)g(single)g(macro)1893
10012 y(expansion)e(while)g Fo(,expand-all)h Fs(fully)e(expands)h(all)g
(macros)g(in)g Fr(form)13 b Fs(.)4259 10511 y(10)p eop
end
%%Page: 11 19
TeXDict begin 11 18 bop 664 1046 a Fo(,where)88 b Fr(pr)-8
b(o)g(c)g(e)g(dur)g(e)996 1245 y Fs(Displa)j(y)56 b(name)g(of)f(\014le)
h(con)-5 b(taining)58 b Fr(pr)-8 b(o)g(c)g(e)g(dur)g(e)12
b Fs('s)55 b(source)h(co)5 b(de.)581 1786 y Fl(3.6)270
b(Switc)-7 b(hes)581 2149 y Fs(There)40 b(are)h(a)f(n)-5
b(um)g(b)5 b(er)42 b(of)e(binary)h(switc)-5 b(hes)41
b(that)f(con)-5 b(trol)41 b(the)f(b)5 b(eha)-5 b(vior)40
b(of)h(the)f(command)581 2349 y(pro)5 b(cessor.)75 b(They)55
b(can)g(b)5 b(e)55 b(set)g(using)i(the)e Fo(,set)h Fs(and)g
Fo(,unset)g Fs(commands.)664 2663 y Fo(,set)88 b Fr(switch)100
b Fo([on)88 b(|)g(off)f(|)h(?])996 2862 y Fs(This)54
b(sets)f(the)g(v)-9 b(alue)53 b(of)g(mo)5 b(de-switc)-5
b(h)54 b Fr(switch)13 b Fs(.)73 b(The)53 b(second)h(argumen)-5
b(t)53 b(defaults)996 3061 y(to)i Fo(on)p Fs(.)75 b(If)55
b(the)g(second)g(argumen)-5 b(t)57 b(is)f Fo(?)74 b Fs(the)55
b(v)-9 b(alue)54 b(of)68 b Fr(switch)h Fs(is)56 b(is)g(displa)-5
b(y)g(ed)57 b(and)996 3261 y(not)64 b(c)-5 b(hanged.)102
b(Doing)65 b Fo(,set)88 b(?)101 b Fs(will)64 b(displa)-5
b(y)66 b(a)e(list)h(of)f(the)g(switc)-5 b(hes)65 b(and)g(their)996
3460 y(curren)-5 b(t)56 b(v)-9 b(alues.)664 3772 y Fo(,unset)88
b Fr(switch)996 3971 y Fo(,unset)g Fr(switch)69 b Fs(is)56
b(the)f(same)h(as)g Fo(,set)88 b Fr(switch)100 b Fo(off)p
Fs(.)830 4285 y(The)56 b(switc)-5 b(hes)56 b(are)f(as)h(follo)-5
b(ws:)664 4576 y Fo(batch)996 4776 y Fs(In)46 b(`batc)-5
b(h)46 b(mo)5 b(de')45 b(an)-5 b(y)46 b(error)f(or)h(in)-5
b(terrupt)45 b(that)g(comes)h(up)g(will)g(cause)g(Sc)-5
b(heme)46 b(48)996 4975 y(to)56 b(exit)f(immediately)g(with)h(a)g
(non-zero)g(exit)f(status.)76 b(Also,)56 b(the)f(command)i(pro-)996
5174 y(cessor)f(do)5 b(esn't)56 b(prin)-5 b(t)56 b(prompts.)75
b(Batc)-5 b(h)55 b(mo)5 b(de)55 b(is)h(o\013)f(b)-5 b(y)56
b(default.)664 5486 y Fo(auto-levels)996 5685 y Fs(Enables)g(or)g
(disables)g(the)f(automatic)g(pushing)i(of)e(a)g(new)g(command)h(lev)-5
b(el)55 b(when)996 5884 y(an)69 b(error,)i(in)-5 b(terrupt,)72
b(or)c(other)g(breakp)5 b(oin)-5 b(t)68 b(o)5 b(ccurs.)113
b(When)68 b(enabled)h(\(the)e(de-)996 6083 y(fault\),)h(breakp)5
b(oin)-5 b(ts)66 b(push)i(a)d(new)h(command)h(lev)-5
b(el,)69 b(and)d Fj(h)p Fs(eof)p Fj(i)f Fs(\(see)g(ab)5
b(o)-5 b(v)g(e\))66 b(or)996 6283 y Fo(,reset)54 b Fs(is)f(required)f
(to)g(return)g(to)g(top)g(lev)-5 b(el.)73 b(The)52 b(e\013ects)g(of)g
(pushed)i(command)996 6482 y(lev)-5 b(els)56 b(include:)1196
6794 y Fj(\017)83 b Fs(a)55 b(longer)h(prompt)1196 7039
y Fj(\017)83 b Fs(reten)-5 b(tion)55 b(of)g(the)g(con)-5
b(tin)g(uation)56 b(in)g(e\013ect)e(at)h(the)g(p)5 b(oin)-5
b(t)56 b(of)f(errors)1196 7284 y Fj(\017)83 b Fs(confusion)56
b(among)g(some)g(new)-5 b(comers)996 7596 y(With)70 b
Fo(auto-levels)i Fs(disabled)f(one)g(m)-5 b(ust)71 b(issue)g(a)f
Fo(,push)h Fs(command)g(immedi-)996 7795 y(ately)65 b(follo)-5
b(wing)67 b(an)f(error)f(in)h(order)g(to)g(retain)f(the)g(error)h(con)
-5 b(tin)g(uation)67 b(for)e(de-)996 7994 y(bugging)60
b(purp)5 b(oses;)61 b(otherwise)e(the)f(con)-5 b(tin)g(uation)60
b(is)f(lost)f(as)i(so)5 b(on)59 b(as)g(the)f(fo)5 b(cus)996
8194 y(ob)k(ject)46 b(c)-5 b(hanges.)71 b(If)46 b(y)-5
b(ou)46 b(don't)g(kno)-5 b(w)46 b(an)-5 b(ything)47 b(ab)5
b(out)45 b(the)h(a)-5 b(v)c(ailable)46 b(debugging)996
8393 y(to)5 b(ols,)56 b(then)f(lev)-5 b(els)56 b(migh)-5
b(t)56 b(as)f(w)-5 b(ell)56 b(b)5 b(e)55 b(disabled.)664
8705 y Fo(inspect-focus-value)996 8904 y Fs(Enable)79
b(or)g(disable)g(`insp)5 b(ection')79 b(mo)5 b(de,)84
b(whic)-5 b(h)80 b(is)f(used)g(for)f(insp)5 b(ecting)79
b(data)996 9103 y(structures)52 b(and)f(con)-5 b(tin)g(uations.)74
b(Insp)5 b(ection)51 b(mo)5 b(de)52 b(is)f(describ)5
b(ed)52 b(in)f(section)g(3.7.)664 9415 y Fo(break-on-warnings)996
9614 y Fs(En)-5 b(ter)52 b(a)g(new)g(command)h(lev)-5
b(el)52 b(when)g(a)g(w)-5 b(arning)53 b(is)g(pro)5 b(duced,)53
b(just)f(as)g(when)g(an)996 9813 y(error)65 b(o)5 b(ccurs.)102
b(Normally)64 b(w)-5 b(arnings)66 b(only)f(result)g(in)g(a)f(displa)-5
b(y)g(ed)67 b(message)e(and)996 10012 y(the)55 b(program)h(do)5
b(es)56 b(not)f(stop)h(executing.)3362 10511 y(11)p eop
end
%%Page: 12 20
TeXDict begin 12 19 bop 1561 1046 a Fo(ask-before-loading)1893
1245 y Fs(If)63 b(on,)k(the)c(system)i(will)f(ask)g(b)5
b(efore)63 b(loading)i(mo)5 b(dules)65 b(that)e(are)h(argumen)-5
b(ts)65 b(to)1893 1445 y(the)55 b Fo(,open)h Fs(command.)75
b Fo(Ask-before-loading)59 b Fs(is)c(o\013)h(b)-5 b(y)55
b(default.)1893 1833 y Fo(>)87 b(,set)h(ask-before-loading)1893
2032 y(will)g(ask)f(before)i(loading)f(modules)1893 2232
y(>)f(,open)h(random)1893 2431 y(Load)g(structure)g(random)h(\(y/n\)?)f
(y)1893 2630 y(>)1561 3019 y(load-noisily)1893 3218 y
Fs(When)47 b(on,)i(the)d(system)h(will)h(prin)-5 b(t)47
b(out)g(the)f(names)i(of)f(mo)5 b(dules)48 b(and)f(\014les)h(as)f(they)
1893 3417 y(are)55 b(loaded.)74 b Fo(load-noisily)58
b Fs(is)e(o\013)f(b)-5 b(y)56 b(default.)1893 3806 y
Fo(>)87 b(,set)h(load-noisily)1893 4005 y(will)g(notify)g(when)g
(loading)g(modules)h(and)e(files)1893 4204 y(>)g(,open)h(random)1893
4404 y([random)g(/usr/local/lib/scheme48/big/random.scm])1893
4603 y(>)1561 4991 y(inline-values)1893 5191 y Fs(This)38
b(con)-5 b(trols)37 b(whether)g(or)g(not)g(the)g(compiler)g(is)h(allo)
-5 b(w)g(ed)38 b(to)f(substitute)g(v)-9 b(ariables')1893
5390 y(v)g(alues)42 b(in-line.)70 b(When)42 b Fo(inline-values)i
Fs(mo)5 b(de)42 b(is)h(on,)i(some)d(Sc)-5 b(heme)43 b(pro)5
b(cedures)1893 5589 y(will)57 b(b)5 b(e)57 b(substituted)g(in-line;)i
(when)e(it)f(is)i(o\013,)f(none)g(will.)79 b(Section)56
b(2.4)h(has)h(more)1893 5788 y(information.)1478 6336
y Fl(3.7)269 b(Insp)7 b(ection)91 b(mo)7 b(de)1478 6700
y Fs(There)72 b(is)h(a)f(data)h(insp)5 b(ector)72 b(a)-5
b(v)c(ailable)73 b(via)f(the)g Fo(,inspect)h Fs(and)g
Fo(,debug)h Fs(commands)1478 6899 y(or)65 b(b)-5 b(y)65
b(setting)g(the)f Fo(inspect-focus-value)k Fs(switc)-5
b(h.)103 b(The)65 b(insp)5 b(ector)65 b(is)g(particularly)1478
7098 y(useful)74 b(with)f(pro)5 b(cedures,)79 b(con)-5
b(tin)g(uations,)79 b(and)74 b(records.)129 b(The)73
b(command)i(pro)5 b(cessor)1478 7297 y(can)72 b(b)5 b(e)72
b(tak)-5 b(en)72 b(out)g(of)g(insp)5 b(ection)72 b(mo)5
b(de)73 b(b)-5 b(y)72 b(using)i(the)d Fo(q)i Fs(command,)k(b)-5
b(y)73 b(unsetting)1478 7497 y(the)64 b Fo(inspect-focus-value)69
b Fs(switc)-5 b(h,)68 b(or)d(b)-5 b(y)65 b(going)g(to)g(a)g(command)h
(lev)-5 b(el)65 b(where)g(the)1478 7696 y Fo(inspect-focus-value)59
b Fs(is)e(not)f(set.)76 b(When)56 b(in)h(insp)5 b(ection)56
b(mo)5 b(de,)57 b(input)f(that)g(b)5 b(egins)1478 7895
y(with)64 b(a)g(letter)f(or)h(digit)g(is)h(read)f(as)g(a)g(command,)k
(not)c(as)g(an)h(expression.)100 b(T)-14 b(o)65 b(see)f(the)1478
8094 y(v)-9 b(alue)55 b(of)g(a)g(v)-9 b(ariable)55 b(or)g(n)-5
b(um)g(b)5 b(er,)57 b(do)f Fo(\(begin)88 b Fr(exp)10
b Fo(\))56 b Fs(or)f(use)h(the)f Fo(,run)88 b Fr(exp)66
b Fs(command.)1727 8294 y(In)58 b(insp)5 b(ection)58
b(mo)5 b(de)58 b(the)f(command)i(pro)5 b(cessor)58 b(prin)-5
b(ts)59 b(out)e(a)h(men)-5 b(u)59 b(of)f(selectable)1478
8493 y(comp)5 b(onen)-5 b(ts)68 b(for)g(the)f(curren)-5
b(t)68 b(fo)5 b(cus)67 b(ob)9 b(ject.)110 b(T)-14 b(o)68
b(insp)5 b(ect)67 b(a)h(particular)g(comp)5 b(onen)-5
b(t,)1478 8692 y(just)48 b(t)-5 b(yp)5 b(e)47 b(the)g(corresp)5
b(onding)49 b(n)-5 b(um)g(b)5 b(er)49 b(in)f(the)g(men)-5
b(u.)72 b(That)48 b(comp)5 b(onen)-5 b(t)48 b(b)5 b(ecomes)48
b(the)1478 8891 y(new)55 b(fo)5 b(cus)55 b(ob)9 b(ject.)74
b(F)-14 b(or)56 b(example:)1478 9215 y Fo(>)87 b(,inspect)i('\(a)e(\(b)
h(c\))f(d\))1478 9415 y(\(a)g(\(b)h(c\))f(d\))1478 9813
y([0])g(a)1478 10012 y([1])g(\(b)h(c\))4259 10511 y Fs(12)p
eop end
%%Page: 13 21
TeXDict begin 13 20 bop 581 1046 a Fo([2])88 b(d)581
1245 y(:)f(1)581 1445 y(\(b)h(c\))581 1843 y([0])g(b)581
2042 y([1])g(c)581 2242 y(:)830 2540 y Fs(When)48 b(a)f(new)h(fo)5
b(cus)47 b(ob)9 b(ject)47 b(is)i(selected)e(the)g(previous)h(one)g(is)g
(pushed)h(on)-5 b(to)48 b(a)g(stac)-5 b(k.)581 2740 y(Y)-14
b(ou)59 b(can)f(p)5 b(op)59 b(the)f(stac)-5 b(k,)60 b(rev)-5
b(erting)58 b(to)g(the)g(previous)h(ob)9 b(ject,)59 b(with)g(the)f
Fo(u)g Fs(command,)581 2939 y(or)e(use)f(the)g Fo(stack)i
Fs(command)f(to)f(mo)-5 b(v)g(e)56 b(to)f(an)g(earlier)h(ob)9
b(ject.)830 3138 y(Commands)57 b(useful)f(when)g(in)g(insp)5
b(ection)55 b(mo)5 b(de:)830 3437 y Fj(\017)83 b Fo(u)56
b Fs(\(up\))f(p)5 b(op)55 b(ob)9 b(ject)55 b(stac)-5
b(k)830 3753 y Fj(\017)83 b Fo(m)56 b Fs(\(more\))f(prin)-5
b(t)55 b(more)h(of)f(a)h(long)f(men)-5 b(u)830 4068 y
Fj(\017)83 b Fo(\(...\))75 b Fs(ev)-9 b(aluate)54 b(a)i(form)f(and)h
(select)f(result)830 4384 y Fj(\017)83 b Fo(q)56 b Fs(quit)830
4699 y Fj(\017)83 b Fo(template)66 b Fs(select)d(a)h(closure)g(or)g
(con)-5 b(tin)g(uation's)66 b(template)d(\(T)-14 b(emplates)64
b(are)g(the)996 4898 y(static)49 b(comp)5 b(onen)-5 b(ts)50
b(of)f(pro)5 b(cedures;)52 b(these)d(are)g(found)h(inside)g(of)g(pro)5
b(cedures)49 b(and)996 5098 y(con)-5 b(tin)g(uations,)78
b(and)72 b(con)-5 b(tain)72 b(the)f(quoted)g(constan)-5
b(ts)73 b(and)f(top-lev)-5 b(el)71 b(v)-9 b(ariables)996
5297 y(referred)55 b(to)g(b)-5 b(y)56 b(b)-5 b(yte-compiled)56
b(co)5 b(de.\))830 5612 y Fj(\017)83 b Fo(d)50 b Fs(\(do)-5
b(wn\))49 b(mo)-5 b(v)g(e)50 b(to)f(the)h(next)e(con)-5
b(tin)g(uation)51 b(\(curren)-5 b(t)49 b(ob)9 b(ject)49
b(m)-5 b(ust)50 b(b)5 b(e)49 b(a)h(con)-5 b(tin-)996
5812 y(uation\))830 6127 y Fj(\017)83 b Fo(menu)56 b
Fs(prin)-5 b(t)56 b(the)f(selection)h(men)-5 b(u)56 b(for)f(the)g(fo)5
b(cus)55 b(ob)9 b(ject)830 6426 y(Multiple)76 b(selection)f(commands)i
(\()p Fo(u)p Fs(,)j Fo(d)p Fs(,)g(and)c(men)-5 b(u)76
b(indexes\))f(ma)-5 b(y)75 b(b)5 b(e)75 b(put)g(on)h(a)581
6625 y(single)56 b(line.)830 6824 y(All)40 b(ordinary)g(commands)h(are)
f(a)-5 b(v)c(ailable)40 b(when)g(in)g(insp)5 b(ection)40
b(mo)5 b(de.)69 b(Similarly)-14 b(,)44 b(the)581 7024
y(insp)5 b(ection)56 b(commands)h(can)e(b)5 b(e)55 b(used)h(when)g(not)
f(in)h(insp)5 b(ection)55 b(mo)5 b(de.)74 b(F)-14 b(or)56
b(example:)581 7323 y Fo(>)87 b(\(list)i('a)e('\(b)h(c\))f('d\))581
7522 y('\(a)h(\(b)f(c\))h(d\))581 7721 y(>)f(,1)581 7920
y('\(b)h(c\))581 8120 y(>)f(,menu)581 8319 y([0])h(b)581
8518 y([1])g(c)581 8717 y(>)830 9016 y Fs(If)66 b(the)g(curren)-5
b(t)66 b(command)i(lev)-5 b(el)66 b(w)-5 b(as)67 b(initiated)f(b)5
b(ecause)66 b(of)g(a)g(breakp)5 b(oin)-5 b(t)66 b(in)h(the)581
9215 y(next)62 b(lev)-5 b(el)62 b(do)-5 b(wn,)65 b(then)d
Fo(,debug)h Fs(will)g(in)-5 b(v)g(ok)g(e)62 b(the)g(insp)5
b(ector)62 b(on)h(the)f(con)-5 b(tin)g(uation)63 b(at)581
9415 y(the)f(p)5 b(oin)-5 b(t)63 b(of)f(the)g(error.)94
b(The)63 b Fo(u)f Fs(and)h Fo(d)g Fs(\(up)f(and)h(do)-5
b(wn\))62 b(commands)i(then)f(mak)-5 b(e)62 b(the)581
9614 y(insp)5 b(ected-v)-9 b(alue)38 b(stac)-5 b(k)38
b(lo)5 b(ok)38 b(lik)-5 b(e)38 b(a)g(con)-5 b(v)g(en)g(tional)39
b(stac)-5 b(k)38 b(debugger,)k(with)c(con)-5 b(tin)g(uations)581
9813 y(pla)g(ying)39 b(the)f(role)h(of)f(stac)-5 b(k)38
b(frames.)69 b Fo(D)38 b Fs(go)5 b(es)38 b(to)g(older)h(or)f(deep)5
b(er)38 b(con)-5 b(tin)g(uations)40 b(\(frames\),)581
10012 y(and)56 b Fo(u)g Fs(go)5 b(es)55 b(bac)-5 b(k)55
b(up)h(to)f(more)h(recen)-5 b(t)55 b(ones.)3362 10511
y(13)p eop end
%%Page: 14 22
TeXDict begin 14 21 bop 1478 1046 a Fl(3.8)269 b(Command)92
b(programs)1478 1410 y Fs(The)62 b Fo(exec)h Fs(pac)-5
b(k)c(age)62 b(con)-5 b(tains)63 b(pro)5 b(cedures)63
b(that)e(are)i(used)g(to)e(execute)g(the)h(command)1478
1609 y(pro)5 b(cessor's)39 b(commands.)70 b(A)37 b(command)j
Fo(,)p Fr(fo)-8 b(o)48 b Fs(is)38 b(executed)f(b)-5 b(y)39
b(applying)f(the)g(v)-9 b(alue)38 b(of)g(the)1478 1808
y(iden)-5 b(ti\014er)48 b Fr(fo)-8 b(o)58 b Fs(in)48
b(the)g Fo(exec)g Fs(pac)-5 b(k)c(age)48 b(to)f(the)h(\(suitably)g
(parsed\))g(command)h(argumen)-5 b(ts.)1561 2165 y Fo(,exec)88
b([)p Fr(c)-8 b(ommand)17 b Fo(])1893 2364 y Fs(Ev)-9
b(aluate)54 b Fr(c)-8 b(ommand)72 b Fs(in)56 b(the)f
Fo(exec)h Fs(pac)-5 b(k)c(age.)74 b(F)-14 b(or)56 b(example,)f(use)1893
2753 y Fo(,exec)88 b(,load)g Fr(\014lename)1893 3143
y Fs(to)70 b(load)h(a)f(\014le)g(con)-5 b(taining)71
b(commands.)121 b(If)70 b(no)g Fr(c)-8 b(ommand)87 b
Fs(is)71 b(giv)-5 b(en,)75 b(the)70 b Fo(exec)1893 3342
y Fs(pac)-5 b(k)c(age)55 b(b)5 b(ecomes)55 b(the)g(execution)g(pac)-5
b(k)c(age)55 b(for)g(future)g(commands.)1727 3698 y(The)g(required)g
(argumen)-5 b(t)56 b(t)-5 b(yp)5 b(es)56 b(are)f(as)h(follo)-5
b(ws:)1727 4023 y Fj(\017)83 b Fs(\014lenames)56 b(should)h(b)5
b(e)55 b(strings)1727 4352 y Fj(\017)83 b Fs(other)55
b(names)h(and)g(iden)-5 b(ti\014ers)56 b(should)h(b)5
b(e)55 b(sym)-5 b(b)5 b(ols)1727 4680 y Fj(\017)83 b
Fs(expressions)57 b(should)f(b)5 b(e)55 b(s-expressions)1727
5009 y Fj(\017)83 b Fs(commands)65 b(\(as)f(for)g Fo(,config)h
Fs(and)f Fo(,exec)h Fs(itself)13 b(\))63 b(should)i(b)5
b(e)64 b(lists)g(of)g(the)f(form)1893 5208 y Fo(\()p
Fr(c)-8 b(ommand-name)100 b(ar)-8 b(gument)103 b(...)p
Fo(\))74 b Fs(where)55 b Fr(c)-8 b(ommand-name)68 b Fs(is)56
b(a)g(sym)-5 b(b)5 b(ol.)1727 5533 y(F)-14 b(or)56 b(example,)f(the)g
(follo)-5 b(wing)56 b(t)-5 b(w)g(o)56 b(commands)h(are)e(equiv)-9
b(alen)k(t:)1478 5858 y Fo(,config)88 b(,load)g(my-file.scm)1478
6256 y(,exec)g(\(config)g('\(load)g("my-file.scm"\)\))1727
6581 y Fs(The)52 b(\014le)g Fo(scheme/vm/load-vm.scm)k
Fs(in)c(the)f(source)i(directory)e(con)-5 b(tains)53
b(an)f(exam-)1478 6780 y(ple)j(of)g(an)h Fo(exec)g Fs(program.)1478
7328 y Fl(3.9)269 b(Building)91 b(images)1561 7691 y
Fo(,dump)d Fr(\014lename)101 b Fo([)p Fr(identi\014c)-8
b(ation)13 b Fo(])1893 7891 y Fs(W)-14 b(rites)71 b(the)f(curren)-5
b(t)71 b(heap)h(out)e(to)h(a)g(\014le,)k(whic)-5 b(h)72
b(can)f(then)g(b)5 b(e)70 b(run)i(using)g(the)1893 8090
y(virtual)58 b(mac)-5 b(hine.)85 b(The)59 b(new)g(image)g(\014le)f
(includes)i(the)e(command)i(pro)5 b(cessor.)85 b(If)1893
8289 y(presen)-5 b(t,)80 b Fr(identi\014c)-8 b(ation)89
b Fs(should)76 b(b)5 b(e)74 b(a)h(string)g(\(written)f(with)g(double)i
(quotes\);)1893 8488 y(this)56 b(string)g(will)f(b)5
b(e)55 b(part)g(of)h(the)e(greeting)h(message)i(as)f(the)f(image)g
(starts)h(up.)1561 8817 y Fo(,build)88 b Fr(exp)98 b(\014lename)j
Fo([)p Fr(option)60 b(.)25 b(.)g(.)g Fo(])1893 9016 y
Fs(Lik)-5 b(e)68 b Fo(,dump)p Fs(,)k(except)c(that)f(the)h(image)h
(\014le)f(con)-5 b(tains)69 b(the)f(v)-9 b(alue)68 b(of)81
b Fr(exp)10 b Fs(,)73 b(whic)-5 b(h)1893 9215 y(should)42
b(b)5 b(e)41 b(a)g(pro)5 b(cedure)41 b(of)g(one)g(argumen)-5
b(t,)45 b(instead)d(of)f(the)f(command)j(pro)5 b(cessor.)1893
9415 y(When)65 b Fr(\014lename)79 b Fs(is)66 b(resumed,)i(that)d(pro)5
b(cedure)65 b(will)g(b)5 b(e)65 b(in)-5 b(v)g(ok)g(ed)66
b(on)f(the)g(VM's)1893 9614 y Fo(-a)51 b Fs(argumen)-5
b(ts,)54 b(whic)-5 b(h)52 b(are)f(passed)h(as)g(a)g(list)f(of)g
(strings.)74 b(The)51 b(pro)5 b(cedure)51 b(should)1893
9813 y(return)j(an)g(in)-5 b(teger)54 b(whic)-5 b(h)54
b(is)h(returned)e(to)h(the)f(program)i(that)e(in)-5 b(v)g(ok)g(ed)55
b(the)e(VM.)1893 10012 y(The)71 b(command)i(pro)5 b(cessor)72
b(and)g(debugging)g(system)g(are)f(not)h(included)g(in)g(the)4259
10511 y(14)p eop end
%%Page: 15 23
TeXDict begin 15 22 bop 996 1046 a Fs(image)56 b(\(unless)h(y)-5
b(ou)55 b(go)h(to)f(some)h(e\013ort)f(to)g(preserv)-5
b(e)56 b(them,)f(suc)-5 b(h)57 b(as)f(retaining)g(a)996
1245 y(con)-5 b(tin)g(uation\).)996 1501 y(If)90 b Fo(no-warnings)78
b Fs(app)5 b(ears)77 b(as)h(an)f Fr(option)89 b Fs(after)76
b(the)h(\014le)f(name,)83 b(no)77 b(w)-5 b(arnings)996
1701 y(ab)5 b(out)60 b(unde\014ned)h(external)f(bindings)i(\(see)d
(Section)h(7.2\))g(will)h(b)5 b(e)59 b(prin)-5 b(ted)61
b(up)5 b(on)996 1900 y(resuming)58 b(the)f(image.)78
b(This)57 b(is)h(useful)f(when)g(the)f(de\014nitions)i(of)f(external)e
(bind-)996 2099 y(ings)50 b(app)5 b(ear)49 b(in)h(shared)g(ob)9
b(jects)49 b(that)f(are)h(only)g(loaded)h(after)e(the)h(resumption)h
(of)996 2298 y(the)55 b(image.)996 2555 y(Doing)79 b
Fo(,flush)g Fs(b)5 b(efore)78 b(building)i(an)e(image)h(will)g(reduce)f
(the)g(amoun)-5 b(t)79 b(of)f(de-)996 2754 y(bugging)73
b(information)f(in)g(the)f(image,)76 b(making)c(for)g(a)f(smaller)i
(image)f(\014le,)k(but)996 2953 y(if)64 b(an)g(error)f(o)5
b(ccurs,)66 b(the)d(error)g(message)i(ma)-5 b(y)64 b(b)5
b(e)63 b(less)i(helpful.)99 b(Doing)64 b Fo(,flush)996
3152 y(source)88 b(maps)55 b Fs(b)5 b(efore)52 b(loading)i(an)-5
b(y)54 b(programs)h(used)f(in)g(the)f(image)h(will)f(mak)-5
b(e)54 b(it)996 3352 y(still)i(smaller.)75 b(See)55 b(section)h(3.10)f
(for)g(more)h(information.)581 3892 y Fl(3.10)270 b(Resource)90
b(query)f(and)i(con)-7 b(trol)581 4256 y Fs(.)664 4573
y Fo(,time)88 b Fr(exp)996 4773 y Fs(Measure)56 b(execution)f(time.)664
5086 y Fo(,collect)996 5285 y Fs(In)-5 b(v)g(ok)g(e)60
b(the)f(garbage)h(collector.)86 b(Ordinarily)60 b(this)g(happ)5
b(ens)60 b(automatically)-14 b(,)61 b(but)996 5484 y(the)h(command)h
(tells)f(ho)-5 b(w)62 b(m)-5 b(uc)g(h)64 b(space)e(is)h(a)-5
b(v)c(ailable)62 b(b)5 b(efore)61 b(and)i(after)e(the)g(col-)996
5683 y(lection.)664 5996 y Fo(,keep)88 b Fr(kind)664
6309 y Fo(,flush)g Fr(kind)996 6509 y Fs(These)68 b(con)-5
b(trol)68 b(the)g(amoun)-5 b(t)69 b(of)e(debugging)i(information)f
(retained)g(after)f(com-)996 6708 y(piling)59 b(pro)5
b(cedures.)81 b(This)58 b(information)g(can)g(consume)g(a)g(fair)f
(amoun)-5 b(t)59 b(of)e(space.)996 6907 y Fr(kind)73
b Fs(is)56 b(one)g(of)f(the)g(follo)-5 b(wing:)1196 7220
y Fj(\017)83 b Fo(maps)56 b Fs(-)f(en)-5 b(vironmen)g(t)57
b(maps)f(\(lo)5 b(cal)55 b(v)-9 b(ariable)55 b(names,)h(for)f(insp)5
b(ector\))1196 7466 y Fj(\017)83 b Fo(source)56 b Fs(-)g(source)f(co)5
b(de)55 b(for)g(con)-5 b(tin)g(uations)57 b(\(displa)-5
b(y)g(ed)57 b(b)-5 b(y)55 b(insp)5 b(ector\))1196 7713
y Fj(\017)83 b Fo(names)64 b Fs(-)g(pro)5 b(cedure)64
b(names)g(\(as)g(displa)-5 b(y)g(ed)66 b(b)-5 b(y)66
b Fo(write)f Fs(and)f(in)g(error)g(mes-)1362 7912 y(sages\))1196
8159 y Fj(\017)83 b Fo(files)56 b Fs(-)f(source)h(\014le)g(names)996
8472 y(These)48 b(commands)h(refer)f(to)f(future)g(compilations)i(only)
-14 b(,)49 b(not)f(to)f(pro)5 b(cedures)48 b(that)996
8671 y(already)54 b(exist.)73 b(T)-14 b(o)54 b(ha)-5
b(v)g(e)55 b(an)-5 b(y)54 b(e\013ect,)g(they)f(m)-5 b(ust)55
b(b)5 b(e)54 b(done)g(b)5 b(efore)54 b(programs)h(are)996
8870 y(loaded.)75 b(The)55 b(default)g(is)h(to)f(k)-5
b(eep)55 b(all)h(four)f(t)-5 b(yp)5 b(es.)664 9183 y
Fo(,flush)996 9382 y Fs(The)66 b(\015ush)g(command)h(with)e(no)h
(argumen)-5 b(t)66 b(deletes)f(the)g(database)h(of)g(names)g(of)996
9582 y(initial)54 b(pro)5 b(cedures.)74 b(Doing)53 b
Fo(,flush)i Fs(b)5 b(efore)52 b(a)i Fo(,build)g Fs(or)g
Fo(,dump)g Fs(will)f(mak)-5 b(e)54 b(the)996 9781 y(resulting)49
b(image)g(signi\014can)-5 b(tly)49 b(smaller,)h(but)f(will)f
(compromise)h(the)f(information)996 9980 y(con)-5 b(ten)g(t)56
b(of)f(man)-5 b(y)56 b(error)f(messages.)3362 10511 y(15)p
eop end
%%Page: 16 24
TeXDict begin 16 23 bop 1478 1046 a Fl(3.11)270 b(Threads)1478
1431 y Fs(Eac)-5 b(h)63 b(command)i(lev)-5 b(el)63 b(has)g(its)h(o)-5
b(wn)63 b(set)g(of)g(threads.)98 b(These)63 b(threads)h(are)f(susp)5
b(ended)1478 1631 y(when)55 b(a)f(new)h(lev)-5 b(el)55
b(is)g(en)-5 b(tered)55 b(and)g(resumed)h(when)e(the)h(o)-5
b(wning)55 b(lev)-5 b(el)55 b(again)g(b)5 b(ecomes)1478
1830 y(the)54 b(curren)-5 b(t)55 b(lev)-5 b(el.)73 b(A)54
b(thread)h(that)f(raises)h(an)g(error)g(is)g(not)g(resumed)g(unless)h
(explicitly)1478 2029 y(restarted)67 b(using)i(the)e
Fo(,proceed)i Fs(command.)111 b(In)68 b(addition)g(to)f(an)-5
b(y)68 b(threads)g(spa)-5 b(wned)1478 2228 y(b)g(y)60
b(the)g(user,)i(eac)-5 b(h)60 b(lev)-5 b(el)60 b(has)h(a)f(thread)g
(that)f(runs)i(the)f(command)h(pro)5 b(cessor)61 b(on)f(that)1478
2428 y(lev)-5 b(el.)85 b(A)58 b(new)h(command-pro)5 b(cessor)61
b(thread)e(is)h(started)f(if)g(the)g(curren)-5 b(t)59
b(one)g(dies)h(or)f(is)1478 2627 y(terminated.)89 b(When)61
b(a)f(command)i(lev)-5 b(el)61 b(is)g(abandoned)h(for)e(a)h(lo)-5
b(w)g(er)61 b(lev)-5 b(el,)62 b(or)e(when)h(a)1478 2826
y(lev)-5 b(el)61 b(is)i(restarted)e(using)i Fo(,reset)p
Fs(,)h(all)e(of)g(the)f(threads)h(on)g(that)f(lev)-5
b(el)62 b(are)g(terminated)1478 3025 y(and)56 b(an)-5
b(y)58 b Fo(dynamic-wind)f Fs(\\after")e(th)-5 b(unks)56
b(are)f(run.)1727 3236 y(The)88 b(follo)-5 b(wing)89
b(commands)h(are)f(useful)g(when)f(debugging)h(m)-5 b(ultithreaded)90
b(pro-)1478 3436 y(grams:)1561 3803 y Fo(,resume)e([)p
Fr(numb)-8 b(er)18 b Fo(])1893 4002 y Fs(P)-5 b(ops)67
b(out)e(to)h(a)g(giv)-5 b(en)66 b(lev)-5 b(el)65 b(and)i(resumes)g
(running)g(all)f(threads)g(at)f(that)g(lev)-5 b(el.)1893
4201 y Fr(Numb)d(er)74 b Fs(defaults)55 b(to)g(zero.)1561
4580 y Fo(,threads)1893 4779 y Fs(In)-5 b(v)g(ok)g(es)67
b(the)g(insp)5 b(ector)66 b(on)h(a)g(list)g(of)f(the)g(threads)h
(running)h(at)f(the)f(next)g(lo)-5 b(w)g(er)1893 4978
y(command)56 b(lev)-5 b(el.)1561 5357 y Fo(,exit-when-done)90
b([)p Fr(exp)10 b Fo(])1893 5556 y Fs(W)-14 b(aits)70
b(un)-5 b(til)71 b(all)f(user)g(threads)h(ha)-5 b(v)g(e)70
b(completed)g(and)g(then)g(exits)g(bac)-5 b(k)70 b(out)g(to)1893
5755 y(shell)52 b(\(or)f(executiv)-5 b(e)51 b(or)g(whatev)-5
b(er)51 b(in)-5 b(v)g(ok)g(ed)53 b(Sc)-5 b(heme)52 b(48)g(in)f(the)h
(\014rst)g(place\).)72 b Fr(Exp)1893 5954 y Fs(should)39
b(ev)-9 b(aluate)37 b(to)g(an)h(in)-5 b(teger)38 b(whic)-5
b(h)38 b(is)g(then)g(returned)g(to)f(the)g(calling)h(program.)1478
6565 y Fl(3.12)270 b(Quite)89 b(obscure)1561 6951 y Fo(,go)f
Fr(exp)1893 7150 y Fs(This)62 b(is)g(lik)-5 b(e)61 b
Fo(,exit)88 b Fr(exp)72 b Fs(except)60 b(that)h(the)f(ev)-9
b(aluation)61 b(of)74 b Fr(exp)e Fs(is)62 b(tail-recursiv)-5
b(e)1893 7349 y(with)63 b(resp)5 b(ect)63 b(to)g(the)g(command)h(pro)5
b(cessor.)98 b(This)64 b(means)h(that)d(the)h(command)1893
7548 y(pro)5 b(cessor)54 b(itself)f(can)g(probably)h(b)5
b(e)53 b(GC'ed,)h(should)g(a)g(garbage)f(collection)g(o)5
b(ccur)1893 7748 y(in)73 b(the)g(execution)g(of)85 b
Fr(exp)10 b Fs(.)128 b(If)73 b(an)h(error)f(o)5 b(ccurs)73
b(Sc)-5 b(heme)73 b(48)h(will)f(exit)f(with)h(a)1893
7947 y(non-zero)56 b(v)-9 b(alue.)1561 8325 y Fo(,translate)89
b Fr(fr)-8 b(om)99 b(to)1893 8525 y Fs(F)-14 b(or)45
b Fo(load)g Fs(and)h(the)e Fo(,load)h Fs(command)h(\(but)e(not)h(for)f
Fo(open-)p Fj(f)p Fo(in|out)p Fj(g)p Fo(put-file)p Fs(\),)1893
8724 y(\014le)39 b(names)g(b)5 b(eginning)40 b(with)e(the)g(string)k
Fr(fr)-8 b(om)50 b Fs(will)39 b(b)5 b(e)38 b(c)-5 b(hanged)40
b(so)f(that)f(the)g(initial)1893 8923 y Fr(fr)-8 b(om)67
b Fs(is)56 b(replaced)f(b)-5 b(y)56 b(the)f(string)j
Fr(to)10 b Fs(.)75 b(E.g.)1893 9368 y Fo(,translate)89
b(/usr/gjc/)g(/zu/gjc/)1893 9813 y Fs(will)51 b(cause)f
Fo(\(load)88 b("/usr/gjc/foo.scm"\))54 b Fs(to)c(ha)-5
b(v)g(e)51 b(the)f(same)h(e\013ect)e(as)i Fo(\(load)1893
10012 y("/zu/gjc/foo.scm"\))p Fs(.)4259 10511 y(16)p
eop end
%%Page: 17 25
TeXDict begin 17 24 bop 664 1046 a Fo(,from-file)89 b
Fr(\014lename)101 b(form)f Fo(...)87 b(,end)996 1245
y Fs(This)62 b(is)g(used)f(b)-5 b(y)61 b(the)g Fo(cmuscheme48)i
Fs(Emacs)e(library)h(to)e(indicate)h(the)f(\014le)i(from)996
1445 y(whic)-5 b(h)55 b(the)e Fr(form)13 b Fs(s)54 b(came.)73
b Fr(Filename)68 b Fs(is)54 b(then)g(used)g(b)-5 b(y)54
b(the)f(command)i(pro)5 b(cessor)996 1644 y(to)55 b(determine)h(the)f
(pac)-5 b(k)c(age)55 b(in)g(whic)-5 b(h)56 b(the)f Fr(form)13
b Fs(s)55 b(are)h(to)f(b)5 b(e)55 b(ev)-9 b(aluated.)3362
10511 y(17)p eop end
%%Page: 18 26
TeXDict begin 18 25 bop 1478 2300 a Fn(Chapter)129 b(4)1478
3139 y Fq(Mo)13 b(dule)155 b(system)1478 4011 y Fs(This)83
b(c)-5 b(hapter)83 b(describ)5 b(es)83 b(Sc)-5 b(heme)84
b(48's)f(mo)5 b(dule)83 b(system.)156 b(The)83 b(mo)5
b(dule)83 b(system)g(is)1478 4211 y(unique)37 b(in)g(the)g(exten)-5
b(t)36 b(to)g(whic)-5 b(h)38 b(it)e(supp)5 b(orts)38
b(b)5 b(oth)37 b(static)f(linking)i(and)f(rapid)h(turnaround)1478
4410 y(during)88 b(program)g(dev)-5 b(elopmen)g(t.)169
b(The)87 b(design)h(w)-5 b(as)88 b(in\015uenced)g(b)-5
b(y)88 b(Standard)f(ML)1478 4609 y(mo)5 b(dules[7)q(])70
b(and)h(b)-5 b(y)70 b(the)g(mo)5 b(dule)70 b(system)h(for)f(Sc)-5
b(heme)70 b(Xero)-5 b(x[4].)118 b(It)70 b(has)h(also)g(b)5
b(een)1478 4808 y(shap)g(ed)62 b(b)-5 b(y)61 b(the)g(needs)g(of)g(Sc)-5
b(heme)62 b(48,)h(whic)-5 b(h)62 b(is)f(designed)h(to)f(run)h(b)5
b(oth)60 b(on)i(w)-5 b(orksta-)1478 5008 y(tions)56 b(and)f(on)h
(relativ)-5 b(ely)55 b(small)h(\(less)g(than)f(1)h(Mb)-5
b(yte\))55 b(em)-5 b(b)5 b(edded)56 b(con)-5 b(trollers.)1727
5216 y(Except)41 b(where)h(noted,)i(ev)-5 b(erything)42
b(describ)5 b(ed)42 b(here)g(is)h(implemen)-5 b(ted)43
b(in)f(Sc)-5 b(heme)43 b(48,)1478 5415 y(and)f(exercised)f(b)-5
b(y)42 b(the)f(Sc)-5 b(heme)42 b(48)g(implemen)-5 b(tation)43
b(and)f(some)g(application)g(programs.)1727 5623 y(Unlik)-5
b(e)47 b(the)g(Common)h(Lisp)g(pac)-5 b(k)c(age)48 b(system,)h(the)e
(mo)5 b(dule)48 b(system)g(describ)5 b(ed)47 b(here)1478
5822 y(con)-5 b(trols)69 b(the)e(mapping)j(of)d(names)i(to)f
(denotations,)k(not)c(the)f(mapping)j(of)e(strings)h(to)1478
6022 y(sym)-5 b(b)5 b(ols.)1478 6617 y Fl(4.1)269 b(In)-7
b(tro)7 b(duction)1478 6997 y Fs(The)81 b(mo)5 b(dule)81
b(system)h(supp)5 b(orts)82 b(the)e(structured)h(division)h(of)f(a)g
(corpus)h(of)f(Sc)-5 b(heme)1478 7197 y(soft)g(w)g(are)65
b(in)-5 b(to)65 b(a)g(set)g(of)g(mo)5 b(dules.)103 b(Eac)-5
b(h)66 b(mo)5 b(dule)65 b(has)h(its)f(o)-5 b(wn)65 b(isolated)g
(namespace,)1478 7396 y(with)47 b(visibilit)-5 b(y)49
b(of)e(bindings)i(con)-5 b(trolled)48 b(b)-5 b(y)48 b(mo)5
b(dule)49 b(descriptions)f(written)f(in)h(a)g(sp)5 b(ecial)1478
7595 y Fr(c)-8 b(on\014gur)g(ation)60 b(language.)1727
7803 y Fs(A)j(mo)5 b(dule)64 b(ma)-5 b(y)65 b(b)5 b(e)63
b(instan)-5 b(tiated)64 b(m)-5 b(ultiple)65 b(times,)h(pro)5
b(ducing)65 b(sev)-5 b(eral)64 b Fr(p)-8 b(ackages)p
Fs(,)1478 8002 y(just)37 b(as)g(a)g(lam)-5 b(b)5 b(da-expression)40
b(can)d(b)5 b(e)37 b(instan)-5 b(tiated)37 b(m)-5 b(ultiple)38
b(times)f(to)g(pro)5 b(duce)37 b(sev)-5 b(eral)1478 8202
y(di\013eren)g(t)53 b(pro)5 b(cedures.)73 b(Since)53
b(single)h(instan)-5 b(tiation)53 b(is)h(the)e(normal)i(case,)g(w)-5
b(e)53 b(will)g(defer)1478 8401 y(discussion)g(of)f(m)-5
b(ultiple)52 b(instan)-5 b(tiation)52 b(un)-5 b(til)52
b(a)g(later)f(section.)72 b(F)-14 b(or)52 b(no)-5 b(w)52
b(y)-5 b(ou)52 b(can)f(think)1478 8600 y(of)83 b(a)g(pac)-5
b(k)c(age)82 b(as)i(simply)g(a)f(mo)5 b(dule's)84 b(in)-5
b(ternal)84 b(en)-5 b(vironmen)g(t)83 b(mapping)i(names)f(to)1478
8799 y(denotations.)1727 9007 y(A)49 b(mo)5 b(dule)51
b(exp)5 b(orts)49 b(bindings)i(b)-5 b(y)51 b(pro)-5 b(viding)50
b(views)g(on)-5 b(to)50 b(the)g(underlying)g(pac)-5 b(k)c(age.)1478
9207 y(Suc)k(h)51 b(a)f(view)f(is)i(called)f(a)g Fr(structur)-8
b(e)51 b Fs(\(terminology)e(from)h(Standard)h(ML\).)f(One)g(mo)5
b(dule)1478 9406 y(ma)-5 b(y)67 b(pro)-5 b(vide)67 b(sev)-5
b(eral)66 b(di\013eren)-5 b(t)67 b(views.)107 b(A)66
b(structure)g(is)h(just)g(a)f(subset)i(of)e(the)g(pac)-5
b(k-)1478 9605 y(age's)56 b(bindings.)77 b(The)56 b(particular)g(set)f
(of)h(names)g(whose)h(bindings)g(are)f(exp)5 b(orted)54
b(is)j(the)1478 9804 y(structure's)f Fr(interfac)-8 b(e)p
Fs(.)1727 10012 y(A)75 b(mo)5 b(dule)76 b(imp)5 b(orts)76
b(bindings)i(from)e(other)f(mo)5 b(dules)76 b(b)-5 b(y)76
b(either)g Fr(op)-8 b(ening)76 b Fs(or)g Fr(ac-)4259
10511 y Fs(18)p eop end
%%Page: 19 27
TeXDict begin 19 26 bop 581 1046 a Fr(c)-8 b(essing)62
b Fs(some)h(structures)e(that)g(are)h(built)f(on)h(other)f(pac)-5
b(k)c(ages.)93 b(When)61 b(a)h(structure)f(is)581 1245
y(op)5 b(ened,)56 b(all)f(of)g(its)h(exp)5 b(orted)54
b(bindings)j(are)e(visible)h(in)g(the)f(clien)-5 b(t)55
b(pac)-5 b(k)c(age.)830 1456 y(F)-14 b(or)56 b(example:)581
1836 y Fo(\(define-structure)90 b(foo)e(\(export)g(a)g(c)f(cons\))755
2035 y(\(open)i(scheme\))755 2235 y(\(begin)g(\(define)f(a)f(1\))1366
2434 y(\(define)h(\(b)g(x\))f(\(+)h(a)f(x\)\))1366 2633
y(\(define)h(\(c)g(y\))f(\(*)h(\(b)f(a\))h(y\)\)\)\))581
3032 y(\(define-structure)i(bar)e(\(export)g(d\))755
3231 y(\(open)h(scheme)f(foo\))755 3430 y(\(begin)h(\(define)f(\(d)g
(w\))f(\(+)h(a)f(\(c)g(w\)\)\)\)\))581 3798 y Fs(This)77
b(con\014guration)g(de\014nes)h(t)-5 b(w)g(o)76 b(structures,)82
b Fo(foo)77 b Fs(and)g Fo(bar)p Fs(.)138 b Fo(foo)77
b Fs(is)g(a)f(view)g(on)h(a)581 3997 y(pac)-5 b(k)c(age)53
b(in)g(whic)-5 b(h)54 b(the)f Fo(scheme)h Fs(structure's)f(bindings)i
(\(including)f Fo(define)g Fs(and)f Fo(+)p Fs(\))g(are)581
4197 y(visible,)78 b(together)72 b(with)g(bindings)j(for)d
Fo(a)p Fs(,)77 b Fo(b)p Fs(,)h(and)73 b Fo(c)p Fs(.)126
b Fo(foo)p Fs('s)74 b(in)-5 b(terface)72 b(is)h Fo(\(export)89
b(a)581 4396 y(c)e(cons\))p Fs(,)67 b(so)e(of)e(the)h(bindings)h(in)f
(its)g(underlying)h(pac)-5 b(k)c(age,)65 b Fo(foo)g Fs(only)e(exp)5
b(orts)64 b(those)581 4595 y(three.)106 b(Similarly)-14
b(,)70 b(structure)c Fo(bar)h Fs(consists)h(of)e(the)g(binding)h(of)f
Fo(d)h Fs(from)f(a)g(pac)-5 b(k)c(age)66 b(in)581 4794
y(whic)-5 b(h)68 b(b)5 b(oth)67 b Fo(scheme)p Fs('s)i(and)f
Fo(foo)p Fs('s)g(bindings)h(are)f(visible.)110 b Fo(foo)p
Fs('s)68 b(binding)h(of)e Fo(cons)h Fs(is)581 4994 y(imp)5
b(orted)56 b(from)f(the)g(Sc)-5 b(heme)56 b(structure)f(and)h(then)f
(re-exp)5 b(orted.)830 5205 y(A)61 b(mo)5 b(dule's)62
b(b)5 b(o)g(dy)-14 b(,)61 b(the)g(part)g(follo)-5 b(wing)61
b Fo(begin)h Fs(in)f(the)g(ab)5 b(o)-5 b(v)g(e)61 b(example,)h(is)g(ev)
-9 b(alu-)581 5404 y(ated)49 b(in)g(an)h(isolated)f(lexical)g(scop)5
b(e)49 b(completely)g(sp)5 b(eci\014ed)49 b(b)-5 b(y)50
b(the)f(pac)-5 b(k)c(age)48 b(de\014nition's)581 5603
y Fo(open)64 b Fs(and)g Fo(access)g Fs(clauses.)99 b(In)64
b(particular,)i(the)d(binding)h(of)f(the)g(syn)-5 b(tactic)63
b(op)5 b(erator)581 5802 y Fo(define-structure)66 b Fs(is)e(not)f
(visible)g(unless)i(it)e(comes)h(from)f(some)h(op)5 b(ened)63
b(structure.)581 6002 y(Similarly)-14 b(,)53 b(bindings)g(from)e(the)g
Fo(scheme)h Fs(structure)f(aren't)g(visible)h(unless)h(they)d(b)5
b(ecome)581 6201 y(so)56 b(b)-5 b(y)56 b Fo(scheme)g
Fs(\(or)f(an)h(equiv)-9 b(alen)k(t)54 b(structure\))h(b)5
b(eing)55 b(op)5 b(ened.)581 6813 y Fl(4.2)270 b(The)90
b(con\014guration)h(language)581 7199 y Fs(The)51 b(con\014guration)h
(language)f(consists)i(of)e(top-lev)-5 b(el)51 b(de\014ning)h(forms)f
(for)g(mo)5 b(dules)52 b(and)581 7398 y(in)-5 b(terfaces.)74
b(Its)55 b(syn)-5 b(tax)56 b(is)g(giv)-5 b(en)55 b(in)h(\014gure)g
(4.1.)830 7610 y(A)46 b Fo(define-structure)k Fs(form)d(in)-5
b(tro)5 b(duces)47 b(a)g(binding)h(of)e(a)h(name)g(to)g(a)f(structure.)
71 b(A)581 7809 y(structure)57 b(is)g(a)g(view)f(on)h(an)g(underlying)g
(pac)-5 b(k)c(age)57 b(whic)-5 b(h)57 b(is)h(created)e(according)h(to)f
(the)581 8008 y(clauses)70 b(of)e(the)h Fo(define-structure)i
Fs(form.)115 b(Eac)-5 b(h)69 b(structure)f(has)i(an)f(in)-5
b(terface)68 b(that)581 8207 y(sp)5 b(eci\014es)64 b(whic)-5
b(h)65 b(bindings)g(in)f(the)f(structure's)h(underlying)g(pac)-5
b(k)c(age)63 b(can)h(b)5 b(e)63 b(seen)h(via)581 8407
y(that)55 b(structure)g(in)h(other)f(pac)-5 b(k)c(ages.)830
8618 y(An)42 b Fo(open)h Fs(clause)g(sp)5 b(eci\014es)42
b(whic)-5 b(h)43 b(structures)f(will)h(b)5 b(e)42 b(op)5
b(ened)42 b(up)g(for)g(use)h(inside)g(the)581 8817 y(new)50
b(pac)-5 b(k)c(age.)72 b(A)-5 b(t)50 b(least)g(one)h(structure)f(m)-5
b(ust)51 b(b)5 b(e)50 b(sp)5 b(eci\014ed)51 b(or)f(else)g(it)g(will)h
(b)5 b(e)50 b(imp)5 b(ossi-)581 9016 y(ble)42 b(to)f(write)g(an)-5
b(y)41 b(useful)h(programs)h(inside)f(the)f(pac)-5 b(k)c(age,)44
b(since)e Fo(define)p Fs(,)k Fo(lambda)p Fs(,)f Fo(cons)p
Fs(,)581 9215 y(etc.)65 b(will)h(b)5 b(e)66 b(una)-5
b(v)c(ailable.)105 b(P)-5 b(ac)g(k)c(ages)67 b(t)-5 b(ypically)65
b(include)h Fo(scheme)p Fs(,)k(whic)-5 b(h)66 b(exp)5
b(orts)65 b(all)581 9415 y(bindings)46 b(appropriate)f(to)f(Revised)
2873 9354 y Fm(5)2992 9415 y Fs(Sc)-5 b(heme,)48 b(in)d(an)f
Fo(open)i Fs(clause.)70 b(F)-14 b(or)45 b(building)h(struc-)581
9614 y(tures)69 b(that)e(exp)5 b(ort)67 b(structures,)72
b(there)c(is)h(a)f Fo(defpackage)i Fs(pac)-5 b(k)c(age)68
b(that)f(exp)5 b(orts)68 b(the)581 9813 y(op)5 b(erators)55
b(of)h(the)f(con\014guration)h(language.)74 b(Man)-5
b(y)56 b(other)f(structures,)h(suc)-5 b(h)57 b(as)f(record)581
10012 y(and)g(hash)g(table)f(facilities,)h(are)f(also)h(a)-5
b(v)c(ailable)56 b(in)f(the)g(Sc)-5 b(heme)56 b(48)g(implemen)-5
b(tation.)3362 10511 y(19)p eop end
%%Page: 20 28
TeXDict begin 20 27 bop 1577 1020 a Fj(h)p Fs(con\014guration)p
Fj(i)56 b(\000)-28 b(!)55 b(h)p Fs(de\014nition)p Fj(i)3847
959 y Fh(\003)1677 1219 y Fj(h)p Fs(de\014nition)p Fj(i)g(\000)-27
b(!)199 b Fo(\(define-structure)90 b Fj(h)p Fs(name)p
Fj(i)d(h)p Fs(in)-5 b(terface)p Fj(i)86 b(h)p Fs(clause)p
Fj(i)6582 1159 y Fh(\003)6659 1219 y Fo(\))2766 1418
y Fj(j)199 b Fo(\(define-structures)90 b(\(\()p Fj(h)p
Fs(name)p Fj(i)d(h)p Fs(in)-5 b(terface)p Fj(i)o Fo(\))6280
1358 y Fh(\003)6356 1418 y Fo(\))88 b Fj(h)p Fs(clause)p
Fj(i)7094 1358 y Fh(\003)7171 1418 y Fo(\))2766 1617
y Fj(j)199 b Fo(\(define-interface)90 b Fj(h)p Fs(name)p
Fj(i)d(h)p Fs(in)-5 b(terface)p Fj(i)n Fo(\))2766 1817
y Fj(j)199 b Fo(\(define-syntax)90 b Fj(h)p Fs(name)p
Fj(i)c(h)p Fs(transformer-sp)5 b(ec)p Fj(i)p Fo(\))1677
2016 y Fj(h)p Fs(clause)p Fj(i)55 b(\000)-28 b(!)200
b Fo(\(open)88 b Fj(h)p Fs(structure)p Fj(i)4072 1956
y Fh(\003)4148 2016 y Fo(\))2517 2215 y Fj(j)200 b Fo(\(access)88
b Fj(h)p Fs(name)p Fj(i)3977 2155 y Fh(\003)4053 2215
y Fo(\))2517 2414 y Fj(j)200 b Fo(\(begin)88 b Fj(h)p
Fs(program)p Fj(i)p Fo(\))2517 2614 y Fj(j)200 b Fo(\(files)88
b Fj(h)p Fs(\014lesp)5 b(ec)p Fj(i)4024 2553 y Fh(\003)4101
2614 y Fo(\))2517 2813 y Fj(j)200 b Fo(\(optimize)89
b Fj(h)p Fs(optimize-sp)5 b(ec)p Fj(i)4747 2753 y Fh(\003)4823
2813 y Fo(\))2517 3012 y Fj(j)200 b Fo(\(for-syntax)89
b Fj(h)p Fs(clause)p Fj(i)4372 2952 y Fh(\003)4449 3012
y Fo(\))1677 3211 y Fj(h)p Fs(in)-5 b(terface)p Fj(i)54
b(\000)-27 b(!)199 b Fo(\(export)88 b Fj(h)p Fs(item)p
Fj(i)4096 3151 y Fh(\003)4173 3211 y Fo(\))2701 3411
y Fj(j)200 b(h)p Fs(name)p Fj(i)2701 3610 y(j)g Fo
(\(compound-interface)90 b Fj(h)p Fs(in)-5 b(terface)p
Fj(i)5438 3550 y Fh(\003)5514 3610 y Fo(\))1677 3809
y Fj(h)p Fs(item)p Fj(i)54 b(\000)-27 b(!)111 b(h)p Fs(name)p
Fj(i)3033 4008 y(j)199 b Fo(\()p Fj(h)p Fs(name)p Fj(i)87
b(h)p Fs(t)-5 b(yp)5 b(e)p Fj(i)o Fo(\))3033 4208 y Fj(j)199
b Fo(\(\()p Fj(h)p Fs(name)p Fj(i)3969 4147 y Fh(\003)4046
4208 y Fo(\))87 b Fj(h)p Fs(t)-5 b(yp)5 b(e)p Fj(i)n
Fo(\))1677 4407 y Fj(h)p Fs(structure)p Fj(i)54 b(\000)-27
b(!)199 b(h)p Fs(name)p Fj(i)2740 4606 y(j)g Fo(\(modify)88
b Fj(h)p Fs(structure)p Fj(i)f(h)p Fs(mo)5 b(di\014er)p
Fj(i)5280 4546 y Fh(\003)5357 4606 y Fo(\))2740 4805
y Fj(j)199 b Fo(\(subset)88 b Fj(h)p Fs(structure)p Fj(i)f
Fo(\()p Fj(h)p Fs(name)p Fj(i)5159 4745 y Fh(\003)5236
4805 y Fo(\)\))2740 5005 y Fj(j)199 b Fo(\(with-prefix)89
b Fj(h)p Fs(structure)p Fj(i)d(h)p Fs(name)p Fj(i)p Fo(\))1677
5204 y Fj(h)p Fs(mo)5 b(di\014er)p Fj(i)55 b(\000)-28
b(!)200 b Fo(\(expose)88 b Fj(h)p Fs(name)p Fj(i)4138
5144 y Fh(\003)4214 5204 y Fo(\))2678 5403 y Fj(j)200
b Fo(\(hide)88 b Fj(h)p Fs(name)p Fj(i)3963 5343 y Fh(\003)4040
5403 y Fo(\))2678 5602 y Fj(j)200 b Fo(\(rename)88 b(\()p
Fj(h)p Fs(name)p Fj(i)4225 5627 y Fm(0)4387 5602 y Fj(h)p
Fs(name)p Fj(i)4903 5627 y Fm(1)4978 5602 y Fo(\))5065
5542 y Fh(\003)5141 5602 y Fo(\))2678 5802 y Fj(j)200
b Fo(\(alias)88 b(\()p Fj(h)p Fs(name)p Fj(i)4138 5827
y Fm(0)4299 5802 y Fj(h)p Fs(name)p Fj(i)4816 5827 y
Fm(1)4890 5802 y Fo(\))4977 5741 y Fh(\003)5054 5802
y Fo(\))2678 6001 y Fj(j)200 b Fo(\(prefix)88 b Fj(h)p
Fs(name)p Fj(i)p Fo(\))2899 6359 y Fs(Figure)56 b(4.1:)74
b(The)55 b(con\014guration)h(language.)1727 6889 y(The)41
b Fo(modify)p Fs(,)k Fo(subset)p Fs(,)g(and)c Fo(prefix)h
Fs(forms)f(pro)5 b(duce)41 b(new)g(views)g(on)g(existing)g(struc-)1478
7088 y(tures)62 b(b)-5 b(y)62 b(renaming)h(or)f(hiding)i(exp)5
b(orted)61 b(names.)95 b Fo(Subset)63 b Fs(returns)f(a)g(new)h
(structure)1478 7288 y(that)48 b(exp)5 b(orts)49 b(only)g(the)g(listed)
h(names)g(from)f(its)h Fj(h)p Fs(structure)p Fj(i)e Fs(argumen)-5
b(t.)72 b Fo(With-prefix)1478 7487 y Fs(returns)49 b(a)f(new)h
(structure)g(that)f(adds)h Fj(h)p Fs(pre\014x)p Fj(i)f
Fs(to)g(eac)-5 b(h)49 b(of)f(the)h(names)g(exp)5 b(orted)48
b(b)-5 b(y)49 b(the)1478 7686 y Fj(h)p Fs(structure)p
Fj(i)54 b Fs(argumen)-5 b(t.)75 b(F)-14 b(or)56 b(example,)f(if)g
(structure)g Fo(s)h Fs(exp)5 b(orts)55 b Fo(a)g Fs(and)h
Fo(b)p Fs(,)g(then)1478 8019 y Fo(\(subset)88 b(s)g(\(a\)\))1478
8351 y Fs(exp)5 b(orts)55 b(only)i Fo(a)f Fs(and)1478
8684 y Fo(\(with-prefix)89 b(s)e(p/\))1478 9016 y Fs(exp)5
b(orts)55 b Fo(a)g Fs(as)h Fo(p/a)g Fs(and)g Fo(b)f Fs(as)h
Fo(p/b)p Fs(.)1727 9215 y(Both)i Fo(subset)h Fs(and)g
Fo(with-prefix)h Fs(are)e(simple)i(macros)f(that)f(expand)g(in)-5
b(to)59 b(uses)h(of)1478 9415 y Fo(modify)p Fs(,)83 b(a)77
b(more)g(general)g(renaming)h(form.)139 b(In)77 b(a)g
Fo(modify)h Fs(structure)e(sp)5 b(eci\014cation)1478
9614 y(the)51 b Fj(h)p Fs(command)p Fj(i)p Fs(s)h(are)f(applied)i(to)e
(the)g(names)h(exp)5 b(orted)51 b(b)-5 b(y)51 b Fj(h)p
Fs(structure)p Fj(i)g Fs(to)g(pro)5 b(duce)51 b(a)1478
9813 y(new)62 b(set)f(of)h(names)h(for)f(the)f Fj(h)p
Fs(structure)p Fj(i)o Fs('s)i(bindings.)95 b Fo(Expose)63
b Fs(mak)-5 b(es)62 b(only)g(the)g(listed)1478 10012
y(names)55 b(visible.)75 b Fo(Hide)55 b Fs(mak)-5 b(es)56
b(all)f(but)f(the)h(listed)g(names)h(visible.)74 b Fo(Rename)56
b Fs(mak)-5 b(es)55 b(eac)-5 b(h)4259 10511 y(20)p eop
end
%%Page: 21 29
TeXDict begin 21 28 bop 581 1046 a Fj(h)p Fs(name)p Fj(i)1098
1071 y Fm(0)1214 1046 y Fs(visible)42 b(as)g Fj(h)p Fs(name)p
Fj(i)2420 1071 y Fm(1)2536 1046 y Fs(name)g(and)g(not)g(visible)g(as)g
Fj(h)p Fs(name)p Fj(i)4762 1071 y Fm(0)4878 1046 y Fs(,)j(while)c
Fo(alias)i Fs(mak)-5 b(es)581 1245 y(eac)g(h)51 b Fj(h)p
Fs(name)p Fj(i)1467 1270 y Fm(0)1592 1245 y Fs(visible)g(as)g(b)5
b(oth)51 b Fj(h)p Fs(name)p Fj(i)3203 1270 y Fm(0)3328
1245 y Fs(and)h Fj(h)p Fs(name)p Fj(i)4163 1270 y Fm(1)4238
1245 y Fs(.)72 b Fo(Prefix)52 b Fs(adds)g Fj(h)p Fs(name)p
Fj(i)e Fs(to)g(the)581 1445 y(b)5 b(eginning)57 b(of)f(eac)-5
b(h)56 b(exp)5 b(orted)55 b(name.)77 b(The)56 b(mo)5
b(di\014ers)57 b(are)f(applied)h(from)f(righ)-5 b(t)57
b(to)e(left.)581 1644 y(Th)-5 b(us)581 2017 y Fo(\(modify)89
b(scheme)f(\(prefix)g(foo/\))g(\(rename)h(\(car)e(bus\)\)\)\))581
2380 y Fs(mak)-5 b(es)56 b Fo(car)g Fs(a)-5 b(v)c(ailable)56
b(as)g Fo(foo/bus)p Fs(..)830 2589 y(The)g(pac)-5 b(k)c(age's)56
b(b)5 b(o)g(dy)55 b(is)i(sp)5 b(eci\014ed)56 b(b)-5 b(y)56
b Fo(begin)h Fs(and/or)f Fo(files)h Fs(clauses.)76 b
Fo(begin)57 b Fs(and)581 2788 y Fo(files)52 b Fs(ha)-5
b(v)g(e)52 b(the)e(same)i(seman)-5 b(tics,)53 b(except)d(that)h(for)f
Fo(begin)i Fs(the)f(text)e(is)j(giv)-5 b(en)51 b(directly)581
2988 y(in)64 b(the)f(pac)-5 b(k)c(age)62 b(de\014nition,)k(while)e(for)
f Fo(files)h Fs(the)f(text)f(is)h(stored)h(somewhere)f(in)h(the)581
3187 y(\014le)75 b(system.)134 b(The)75 b(b)5 b(o)g(dy)75
b(consists)h(of)f(a)g(Sc)-5 b(heme)76 b(program,)81 b(that)74
b(is,)81 b(a)75 b(sequence)g(of)581 3386 y(de\014nitions)55
b(and)g(expressions)g(to)e(b)5 b(e)54 b(ev)-9 b(aluated)53
b(in)h(order.)74 b(In)54 b(practice,)f(w)-5 b(e)54 b(alw)-5
b(a)g(ys)55 b(use)581 3585 y Fo(files)h Fs(in)g(preference)f(to)g
Fo(begin)p Fs(;)h Fo(begin)g Fs(exists)g(mainly)g(for)f(exp)5
b(ository)54 b(purp)5 b(oses.)830 3795 y(A)83 b(name's)h(imp)5
b(orted)83 b(binding)h(ma)-5 b(y)84 b(b)5 b(e)82 b(lexically)h(o)-5
b(v)g(erridden)84 b(or)f Fr(shadowe)-8 b(d)82 b Fs(b)-5
b(y)581 3994 y(de\014ning)78 b(the)f(name)h(using)g(a)f(de\014ning)h
(form)g(suc)-5 b(h)78 b(as)g Fo(define)g Fs(or)f Fo(define-syntax)p
Fs(.)581 4193 y(This)j(will)f(create)f(a)h(new)g(binding)i(without)d
(ha)-5 b(ving)80 b(an)-5 b(y)79 b(e\013ect)f(on)h(the)g(binding)h(in)
581 4393 y(the)63 b(op)5 b(ened)62 b(pac)-5 b(k)c(age.)97
b(F)-14 b(or)63 b(example,)i(one)e(can)g(do)g Fo(\(define)88
b(car)g('chevy\))64 b Fs(without)581 4592 y(a\013ecting)55
b(the)g(binding)i(of)e(the)g(name)g Fo(car)h Fs(in)g(the)f
Fo(scheme)h Fs(pac)-5 b(k)c(age.)830 4801 y(Assignmen)k(ts)68
b(\(using)f Fo(set!)p Fs(\))f(to)g(imp)5 b(orted)66 b(and)g
(unde\014ned)h(v)-9 b(ariables)66 b(are)g(not)g(al-)581
5000 y(lo)-5 b(w)g(ed.)119 b(In)70 b(order)g(to)f Fo(set!)i
Fs(a)f(top-lev)-5 b(el)70 b(v)-9 b(ariable,)73 b(the)c(pac)-5
b(k)c(age)70 b(b)5 b(o)g(dy)69 b(m)-5 b(ust)71 b(con)-5
b(tain)581 5200 y(a)75 b Fo(define)h Fs(form)f(de\014ning)g(that)f(v)-9
b(ariable.)132 b(Applied)75 b(to)g(bindings)h(from)f(the)g
Fo(scheme)581 5399 y Fs(structure,)64 b(this)f(restriction)f(is)h
(compatible)g(with)f(the)g(requiremen)-5 b(ts)63 b(of)f(the)g(Revised)
6235 5339 y Fm(5)581 5598 y Fs(Sc)-5 b(heme)56 b(rep)5
b(ort.)830 5808 y(It)47 b(is)g(an)g(error)g(for)g(t)-5
b(w)g(o)47 b(of)g(a)g(pac)-5 b(k)c(age's)47 b(op)5 b(ened)47
b(structures)g(to)g(exp)5 b(ort)45 b(t)-5 b(w)g(o)48
b(di\013eren)-5 b(t)581 6007 y(bindings)75 b(for)f(the)f(same)h(name.)
128 b(Ho)-5 b(w)g(ev)g(er,)78 b(the)73 b(curren)-5 b(t)74
b(implemen)-5 b(tation)74 b(do)5 b(es)74 b(not)581 6206
y(c)-5 b(hec)g(k)70 b(for)h(this)f(situation;)78 b(a)71
b(name's)g(binding)h(is)e(alw)-5 b(a)g(ys)72 b(tak)-5
b(en)70 b(from)g(the)g(structure)581 6405 y(that)55 b(is)h(listed)g
(\014rst)f(within)h(the)f Fo(open)h Fs(clause.)74 b(This)56
b(ma)-5 b(y)56 b(b)5 b(e)55 b(\014xed)g(in)h(the)f(future.)830
6615 y(File)f(names)g(in)g(a)f Fo(files)h Fs(clause)g(can)f(b)5
b(e)53 b(sym)-5 b(b)5 b(ols,)55 b(strings,)g(or)f(lists)g(\(Maclisp-st)
-5 b(yle)581 6814 y(\\namelists"\).)148 b(A)79 b(\\)p
Fo(.scm)p Fs(")h(\014le)g(t)-5 b(yp)5 b(e)79 b(su\016x)i(is)f(assumed.)
148 b(Sym)-5 b(b)5 b(ols)81 b(are)f(con)-5 b(v)g(erted)581
7013 y(to)62 b(\014le)h(names)g(b)-5 b(y)63 b(con)-5
b(v)g(erting)63 b(to)f(upp)5 b(er)62 b(or)h(lo)-5 b(w)g(er)63
b(case)f(as)h(appropriate)g(for)f(the)g(host)581 7213
y(op)5 b(erating)38 b(system.)69 b(A)38 b(namelist)h(is)g(an)g(op)5
b(erating-system-indep)g(enden)-5 b(t)39 b(w)-5 b(a)g(y)39
b(to)f(sp)5 b(ecify)581 7412 y(a)64 b(\014le)g(obtained)h(from)f(a)g
(sub)5 b(directory)-14 b(.)99 b(F)-14 b(or)65 b(example,)h(the)e
(namelist)h Fo(\(rts)87 b(record\))581 7611 y Fs(sp)5
b(eci\014es)56 b(the)f(\014le)h Fo(record.scm)h Fs(in)e(the)g
Fo(rts)h Fs(sub)5 b(directory)-14 b(.)830 7821 y(If)42
b(the)f Fo(define-structure)j Fs(form)e(w)-5 b(as)42
b(itself)g(obtained)g(from)f(a)h(\014le,)j(then)c(\014le)h(names)581
8020 y(in)59 b Fo(files)h Fs(clauses)g(are)e(in)-5 b(terpreted)59
b(relativ)-5 b(e)58 b(to)g(the)h(directory)f(in)h(whic)-5
b(h)59 b(the)f(\014le)h(con-)581 8219 y(taining)69 b(the)f
Fo(define-structure)j Fs(form)e(w)-5 b(as)69 b(found.)114
b(Y)-14 b(ou)68 b(can't)h(at)f(presen)-5 b(t)69 b(put)f(an)581
8418 y(absolute)56 b(path)f(name)h(in)g(the)f Fo(files)h
Fs(list.)581 9022 y Fl(4.3)270 b(In)-7 b(terfaces)581
9404 y Fo(define-interface)830 9614 y Fs(An)47 b(in)-5
b(terface)46 b(can)g(b)5 b(e)46 b(though)-5 b(t)47 b(of)g(as)g(the)f(t)
-5 b(yp)5 b(e)46 b(of)g(a)h(structure.)70 b(In)47 b(its)g(basic)g(form)
g(it)581 9813 y(is)j(just)e(a)h(list)g(of)g(v)-9 b(ariable)48
b(names,)k(written)c Fo(\(export)88 b Fr(name)100 b Fo(...\))p
Fs(.)72 b(Ho)-5 b(w)g(ev)g(er,)51 b(in)e(place)581 10012
y(of)56 b(a)g(name)g(one)g(ma)-5 b(y)56 b(write)f Fo(\()p
Fr(name)100 b(typ)-8 b(e)12 b Fo(\))p Fs(,)57 b(indicating)f(the)f(t)-5
b(yp)5 b(e)56 b(of)68 b Fr(name)12 b Fs('s)57 b(binding.)3362
10511 y(21)p eop end
%%Page: 22 30
TeXDict begin 22 29 bop 1478 1046 a Fs(The)53 b(t)-5
b(yp)5 b(e)53 b(\014eld)h(is)g(optional,)g(except)f(that)f(exp)5
b(orted)53 b(macros)h(m)-5 b(ust)55 b(b)5 b(e)53 b(indicated)g(with)
1478 1245 y(t)-5 b(yp)5 b(e)54 b Fo(:syntax)p Fs(.)1727
1445 y(In)-5 b(terfaces)55 b(ma)-5 b(y)56 b(b)5 b(e)55
b(either)g(anon)-5 b(ymous,)57 b(as)f(in)g(the)f(example)g(in)h(the)f
(in)-5 b(tro)5 b(duction,)1478 1644 y(or)55 b(they)g(ma)-5
b(y)56 b(b)5 b(e)55 b(giv)-5 b(en)55 b(names)h(b)-5 b(y)56
b(a)f Fo(define-interface)j Fs(form,)e(for)f(example)1478
1949 y Fo(\(define-interface)90 b(foo-interface)f(\(export)g(a)e(c)g
(cons\)\))1478 2148 y(\(define-structure)j(foo)e(foo-interface)h(...\))
1478 2453 y Fs(In)46 b(principle,)j(in)-5 b(terfaces)47
b(needn't)f(ev)-5 b(er)46 b(b)5 b(e)46 b(named.)72 b(If)46
b(an)g(in)-5 b(terface)46 b(had)h(to)f(b)5 b(e)46 b(giv)-5
b(en)47 b(at)1478 2653 y(the)h(p)5 b(oin)-5 b(t)48 b(of)g(a)g
(structure's)g(use)h(as)g(w)-5 b(ell)48 b(as)h(at)e(the)h(p)5
b(oin)-5 b(t)48 b(of)g(its)h(de\014nition,)h(it)e(w)-5
b(ould)49 b(b)5 b(e)1478 2852 y(imp)g(ortan)-5 b(t)54
b(to)g(name)h(in)-5 b(terfaces)55 b(in)f(order)h(to)f(a)-5
b(v)g(oid)55 b(ha)-5 b(ving)55 b(to)f(write)g(them)g(out)h(t)-5
b(wice,)1478 3051 y(with)55 b(risk)h(of)f(mismatc)-5
b(h)56 b(should)h(the)e(in)-5 b(terface)55 b(ev)-5 b(er)55
b(c)-5 b(hange.)74 b(But)55 b(they)g(don't.)1727 3250
y(Still,)h(there)e(are)i(sev)-5 b(eral)55 b(reasons)i(to)e(use)g
Fo(define-interface)p Fs(:)1681 3555 y(1.)83 b(It)60
b(is)h(imp)5 b(ortan)-5 b(t)61 b(to)f(separate)g(the)g(in)-5
b(terface)60 b(de\014nition)h(from)g(the)f(pac)-5 b(k)c(age)60
b(def-)1893 3755 y(initions)73 b(when)g(there)e(are)h(m)-5
b(ultiple)74 b(distinct)e(structures)g(that)g(ha)-5 b(v)g(e)73
b(the)f(same)1893 3954 y(in)-5 b(terface)55 b(|)g(that)g(is,)h(m)-5
b(ultiple)56 b(implemen)-5 b(tations)57 b(of)e(the)g(same)h
(abstraction.)1681 4273 y(2.)83 b(It)66 b(is)i(conceptually)e(cleaner,)
k(and)d(often)f(useful)h(for)g(do)5 b(cumen)-5 b(tation)67
b(purp)5 b(oses,)1893 4472 y(to)69 b(separate)h(a)g(mo)5
b(dule's)70 b(sp)5 b(eci\014cation)70 b(\(in)-5 b(terface\))69
b(from)g(its)h(implemen)-5 b(tation)1893 4671 y(\(pac)g(k)c(age\).)1681
4990 y(3.)83 b(Our)d(exp)5 b(erience)79 b(is)h(that)g(con\014gurations)
h(that)e(are)h(separated)g(in)-5 b(to)80 b(in)-5 b(terface)1893
5189 y(de\014nitions)81 b(and)g(pac)-5 b(k)c(age)80 b(de\014nitions)h
(are)f(easier)g(to)g(read;)92 b(the)80 b(long)h(lists)g(of)1893
5388 y(exp)5 b(orted)54 b(bindings)j(just)f(get)e(in)i(the)f(w)-5
b(a)g(y)56 b(most)g(of)f(the)g(time.)1727 5693 y(The)63
b Fo(compound-interface)i Fs(op)5 b(erator)62 b(forms)i(an)f(in)-5
b(terface)62 b(that)g(is)i(the)e(union)i(of)1478 5893
y(t)-5 b(w)g(o)55 b(or)h(more)f(comp)5 b(onen)-5 b(t)56
b(in)-5 b(terfaces.)74 b(F)-14 b(or)56 b(example,)1478
6198 y Fo(\(define-interface)90 b(bar-interface)1652
6397 y(\(compound-interface)h(foo-interface)e(\(export)f(mumble\)\)\))
1478 6702 y Fs(de\014nes)56 b Fo(bar-interface)i Fs(to)d(b)5
b(e)55 b Fo(foo-interface)i Fs(with)e(the)g(name)h Fo(mumble)g
Fs(added.)1478 7245 y Fl(4.4)269 b(Macros)1478 7609 y
Fs(Hygienic)65 b(macros,)j(as)e(describ)5 b(ed)66 b(in)g([2,)g(3],)i
(are)e(implemen)-5 b(ted.)105 b(Structures)66 b(ma)-5
b(y)66 b(ex-)1478 7808 y(p)5 b(ort)54 b(macros;)h(auxiliary)f(names)i
(in)-5 b(tro)5 b(duced)54 b(in)-5 b(to)55 b(the)f(expansion)h(are)f
(resolv)-5 b(ed)55 b(in)g(the)1478 8007 y(en)-5 b(vironmen)g(t)56
b(of)f(the)g(macro's)h(de\014nition.)1727 8207 y(F)-14
b(or)60 b(example,)g(the)f Fo(scheme)h Fs(structure's)g
Fo(delay)g Fs(macro)f(is)h(de\014ned)g(b)-5 b(y)59 b(the)g(rewrite)1478
8406 y(rule)1478 8711 y Fo(\(delay)88 b Fr(exp)10 b Fo(\))175
b Fs(=)-27 b Fj(\))174 b Fo(\(make-promise)90 b(\(lambda)e(\(\))f
Fr(exp)10 b Fo(\)\).)1478 9016 y Fs(The)38 b(v)-9 b(ariable)38
b Fo(make-promise)i Fs(is)f(de\014ned)g(in)f(the)g Fo(scheme)h
Fs(structure's)g(underlying)g(pac)-5 b(k-)1478 9215 y(age,)63
b(but)e(is)h(not)g(exp)5 b(orted.)91 b(A)61 b(use)h(of)f(the)h
Fo(delay)g Fs(macro,)h(ho)-5 b(w)g(ev)g(er,)64 b(alw)-5
b(a)g(ys)63 b(accesses)1478 9415 y(the)49 b(correct)f(de\014nition)i
(of)f Fo(make-promise)p Fs(.)74 b(Similarly)-14 b(,)52
b(the)c Fo(case)i Fs(macro)g(expands)g(in)-5 b(to)1478
9614 y(uses)56 b(of)g Fo(cond)p Fs(,)g Fo(eqv?)p Fs(,)h(and)f(so)g(on.)
75 b(These)56 b(names)h(are)e(exp)5 b(orted)55 b(b)-5
b(y)56 b Fo(scheme)p Fs(,)h(but)f(their)1478 9813 y(correct)63
b(bindings)j(will)f(b)5 b(e)64 b(found)g(ev)-5 b(en)64
b(if)h(they)e(are)h(shado)-5 b(w)g(ed)66 b(b)-5 b(y)65
b(de\014nitions)g(in)g(the)1478 10012 y(clien)-5 b(t)55
b(pac)-5 b(k)c(age.)4259 10511 y(22)p eop end
%%Page: 23 31
TeXDict begin 23 30 bop 581 1046 a Fl(4.5)270 b(Higher-order)90
b(mo)7 b(dules)581 1410 y Fs(There)61 b(are)f Fo(define-module)j
Fs(and)f Fo(define)g Fs(forms)f(for)g(de\014ning)g(mo)5
b(dules)62 b(that)e(are)h(in-)581 1609 y(tended)i(to)g(b)5
b(e)63 b(instan)-5 b(tiated)63 b(m)-5 b(ultiple)64 b(times.)98
b(But)63 b(these)g(are)g(prett)-5 b(y)62 b(kludgey)h(|)g(for)581
1808 y(example,)57 b(compiled)g(co)5 b(de)56 b(isn't)h(shared)h(b)5
b(et)-5 b(w)g(een)56 b(the)g(instan)-5 b(tiations)58
b(|)f(so)g(w)-5 b(e)56 b(w)-5 b(on't)581 2008 y(describ)5
b(e)51 b(them)g(y)-5 b(et.)72 b(If)50 b(y)-5 b(ou)51
b(m)-5 b(ust)52 b(kno)-5 b(w,)52 b(\014gure)g(it)e(out)h(from)g(the)f
(follo)-5 b(wing)52 b(grammar.)1101 2285 y Fj(h)p Fs(de\014nition)p
Fj(i)j(\000)-28 b(!)200 b Fo(\(define-module)89 b(\()p
Fj(h)p Fs(name)p Fj(i)e Fo(\()p Fj(h)p Fs(name)p Fj(i)g(h)p
Fs(in)-5 b(terface)p Fj(i)o Fo(\))5959 2224 y Fh(\003)6035
2285 y Fo(\))2767 2484 y Fj(h)p Fs(de\014nition)p Fj(i)3578
2424 y Fh(\003)2767 2683 y Fj(h)p Fs(name)p Fj(i)o Fo(\))2189
2882 y Fj(j)200 b Fo(\(define)88 b Fj(h)p Fs(name)p Fj(i)f
Fo(\()p Fj(h)p Fs(name)p Fj(i)g(h)p Fs(name)p Fj(i)4943
2822 y Fh(\003)5019 2882 y Fo(\)\))581 3366 y Fl(4.6)270
b(Compiling)91 b(and)f(linking)581 3729 y Fs(Sc)-5 b(heme)49
b(48)f(has)g(a)g(static)g(link)-5 b(er)48 b(that)f(pro)5
b(duces)49 b(stand-alone)g(heap)f(images)h(from)f(mo)5
b(d-)581 3929 y(ule)53 b(descriptions.)74 b(The)53 b(programmer)g(sp)5
b(eci\014es)53 b(a)g(particular)f(pro)5 b(cedure)53 b(in)g(a)f
(particu-)581 4128 y(lar)60 b(structure)f(to)g(b)5 b(e)59
b(the)g(image's)h(startup)g(pro)5 b(cedure)59 b(\(en)-5
b(try)58 b(p)5 b(oin)-5 b(t\),)61 b(and)e(the)g(link)-5
b(er)581 4327 y(traces)56 b(dep)5 b(endency)56 b(links)h(as)g(giv)-5
b(en)57 b(b)-5 b(y)57 b Fo(open)g Fs(and)g Fo(access)g
Fs(clauses)h(to)e(determine)g(the)581 4526 y(comp)5 b(osition)56
b(of)f(the)g(heap)h(image.)830 4726 y(There)46 b(is)h(not)f(curren)-5
b(tly)46 b(an)-5 b(y)47 b(pro)-5 b(vision)47 b(for)f(separate)g
(compilation;)k(the)c(only)g(input)581 4925 y(to)i(the)h(static)f(link)
-5 b(er)49 b(is)g(source)h(co)5 b(de.)71 b(Ho)-5 b(w)g(ev)g(er,)50
b(it)e(will)h(not)g(b)5 b(e)48 b(di\016cult)h(to)g(implemen)-5
b(t)581 5124 y(separate)46 b(compilation.)72 b(The)46
b(unit)g(of)g(compilation)g(is)h(one)f(mo)5 b(dule)47
b(\(not)e(one)h(\014le\).)71 b(An)-5 b(y)581 5323 y(op)5
b(ened)38 b(or)f(accessed)h(structures)g(from)g(whic)-5
b(h)38 b(macros)h(are)e(obtained)h(m)-5 b(ust)39 b(b)5
b(e)37 b(pro)5 b(cessed)581 5523 y(to)56 b(the)h(exten)-5
b(t)55 b(of)i(extracting)e(its)i(macro)g(de\014nitions.)79
b(The)57 b(compiler)g(kno)-5 b(ws)57 b(from)g(the)581
5722 y(in)-5 b(terface)70 b(of)f(an)i(op)5 b(ened)70
b(or)g(accessed)g(structure)g(whic)-5 b(h)71 b(of)e(its)i(exp)5
b(orts)69 b(are)h(macros.)581 5921 y(Except)c(for)g(macros,)71
b(a)66 b(mo)5 b(dule)68 b(ma)-5 b(y)67 b(b)5 b(e)66 b(compiled)h
(without)g(an)-5 b(y)67 b(kno)-5 b(wledge)67 b(of)f(the)581
6120 y(implemen)-5 b(tation)66 b(of)e(its)h(op)5 b(ened)65
b(and)g(accessed)g(structures.)102 b(Ho)-5 b(w)g(ev)g(er,)67
b(in)-5 b(ter-mo)5 b(dule)581 6320 y(optimization)56
b(ma)-5 b(y)56 b(b)5 b(e)55 b(a)-5 b(v)c(ailable)55 b(as)h(an)g
(option.)830 6519 y(The)45 b(main)h(di\016cult)-5 b(y)46
b(with)f(separate)h(compilation)f(is)h(resolution)g(of)f(auxiliary)g
(bind-)581 6718 y(ings)55 b(in)-5 b(tro)5 b(duced)54
b(in)-5 b(to)54 b(macro)g(expansions.)74 b(The)54 b(mo)5
b(dule)54 b(compiler)g(m)-5 b(ust)55 b(transmit)f(to)581
6917 y(the)j(loader)g(or)g(link)-5 b(er)57 b(the)f(searc)-5
b(h)58 b(path)f(b)-5 b(y)57 b(whic)-5 b(h)58 b(suc)-5
b(h)58 b(bindings)g(are)f(to)f(b)5 b(e)57 b(resolv)-5
b(ed.)581 7117 y(In)56 b(the)f(case)h(of)g(the)f Fo(delay)i
Fs(macro's)f(auxiliary)g Fo(make-promise)i Fs(\(see)d(example)h(ab)5
b(o)-5 b(v)g(e\),)581 7316 y(the)53 b(loader)h(or)g(link)-5
b(er)54 b(needs)g(to)f(kno)-5 b(w)54 b(that)f(the)h(desired)g(binding)h
(of)e Fo(make-promise)j Fs(is)581 7515 y(the)j(one)f(apparen)-5
b(t)60 b(in)f Fo(delay)p Fs('s)h(de\014ning)g(pac)-5
b(k)c(age,)60 b(not)e(in)h(the)g(pac)-5 b(k)c(age)58
b(b)5 b(eing)59 b(loaded)581 7714 y(or)d(link)-5 b(ed.)581
8254 y Fl(4.7)270 b(Seman)-7 b(tics)89 b(of)h(con\014guration)h(m)-7
b(utation)581 8618 y Fs(During)57 b(program)g(dev)-5
b(elopmen)g(t)57 b(it)f(is)h(often)f(desirable)h(to)f(mak)-5
b(e)56 b(c)-5 b(hanges)58 b(to)d(pac)-5 b(k)c(ages)581
8817 y(and)52 b(in)-5 b(terfaces.)73 b(In)52 b(static)f(languages)h(it)
f(ma)-5 b(y)52 b(b)5 b(e)52 b(necessary)f(to)g(recompile)h(and)g
(re-link)581 9016 y(a)44 b(program)h(in)g(order)f(for)g(suc)-5
b(h)45 b(c)-5 b(hanges)45 b(to)f(b)5 b(e)43 b(re\015ected)h(in)g(a)g
(running)i(system.)70 b(Ev)-5 b(en)44 b(in)581 9215 y(in)-5
b(teractiv)g(e)37 b(Common)i(Lisp)f(implemen)-5 b(tations,)43
b(a)38 b(c)-5 b(hange)38 b(to)f(a)h(pac)-5 b(k)c(age's)38
b(exp)5 b(orts)37 b(often)581 9415 y(requires)70 b(reloading)g(clien)-5
b(ts)70 b(that)f(ha)-5 b(v)g(e)70 b(already)f(men)-5
b(tioned)71 b(names)f(whose)g(bindings)581 9614 y(c)-5
b(hange.)127 b(Once)73 b Fo(read)h Fs(resolv)-5 b(es)74
b(a)f(use)g(of)g(a)g(name)g(to)g(a)g(sym)-5 b(b)5 b(ol,)78
b(that)72 b(resolution)i(is)581 9813 y(\014xed,)j(so)72
b(a)g(c)-5 b(hange)73 b(in)f(the)g(w)-5 b(a)g(y)73 b(that)e(a)h(name)h
(resolv)-5 b(es)73 b(to)f(a)g(sym)-5 b(b)5 b(ol)73 b(can)f(only)g(b)5
b(e)581 10012 y(re\015ected)55 b(b)-5 b(y)55 b(re-)p
Fo(read)p Fs(ing)i(all)f(suc)-5 b(h)56 b(references.)3362
10511 y(23)p eop end
%%Page: 24 32
TeXDict begin 24 31 bop 1727 1046 a Fs(The)38 b(Sc)-5
b(heme)38 b(48)g(dev)-5 b(elopmen)g(t)39 b(en)-5 b(vironmen)g(t)39
b(supp)5 b(orts)39 b(rapid)f(turnaround)h(in)g(mo)5 b(d-)1478
1245 y(ular)54 b(program)g(dev)-5 b(elopmen)g(t)53 b(b)-5
b(y)54 b(allo)-5 b(wing)54 b(m)-5 b(utations)55 b(to)e(a)g(program's)i
(con\014guration,)1478 1445 y(and)h(giving)f(a)g(clear)g(seman)-5
b(tics)57 b(to)e(suc)-5 b(h)56 b(m)-5 b(utations.)75
b(The)55 b(rule)h(is)f(that)g(v)-9 b(ariable)55 b(bind-)1478
1644 y(ings)69 b(in)f(a)g(running)h(program)g(are)f(alw)-5
b(a)g(ys)69 b(resolv)-5 b(ed)68 b(according)h(to)e(curren)-5
b(t)69 b(structure)1478 1843 y(and)58 b(in)-5 b(terface)57
b(bindings,)j(ev)-5 b(en)58 b(when)g(these)f(bindings)j(c)-5
b(hange)58 b(as)g(a)g(result)f(of)h(edits)g(to)1478 2042
y(the)d(con\014guration.)74 b(F)-14 b(or)56 b(example,)g(consider)g
(the)f(follo)-5 b(wing:)1478 2379 y Fo(\(define-interface)90
b(foo-interface)f(\(export)g(a)e(c\)\))1478 2578 y(\(define-structure)j
(foo)e(foo-interface)1652 2777 y(\(open)g(scheme\))1652
2976 y(\(begin)g(\(define)h(a)e(1\))2262 3176 y(\(define)i(\(b)e(x\))h
(\(+)f(a)h(x\)\))2262 3375 y(\(define)h(\(c)e(y\))h(\(*)f(\(b)h(a\))f
(y\)\)\)\))1478 3574 y(\(define-structure)j(bar)e(\(export)g(d\))1652
3773 y(\(open)g(scheme)g(foo\))1652 3973 y(\(begin)g(\(define)h(\(d)e
(w\))h(\(+)f(\(b)h(w\))f(a\)\)\)\))1478 4308 y Fs(This)50
b(program)g(has)h(a)e(bug.)73 b(The)49 b(v)-9 b(ariable)49
b Fo(b)p Fs(,)i(whic)-5 b(h)50 b(is)g(free)f(in)h(the)f(de\014nition)h
(of)g Fo(d)p Fs(,)h(has)1478 4507 y(no)63 b(binding)g(in)g
Fo(bar)p Fs('s)h(pac)-5 b(k)c(age.)95 b(Supp)5 b(ose)63
b(that)f Fo(b)h Fs(w)-5 b(as)63 b(supp)5 b(osed)64 b(to)e(b)5
b(e)63 b(exp)5 b(orted)61 b(b)-5 b(y)1478 4706 y Fo(foo)p
Fs(,)66 b(but)d(w)-5 b(as)64 b(omitted)f(from)g Fo(foo-interface)j
Fs(b)-5 b(y)63 b(mistak)-5 b(e.)98 b(It)63 b(is)h(not)f(necessary)h(to)
1478 4906 y(re-pro)5 b(cess)51 b Fo(bar)g Fs(or)g(an)-5
b(y)51 b(of)f Fo(foo)p Fs('s)i(other)e(clien)-5 b(ts)51
b(at)f(this)h(p)5 b(oin)-5 b(t.)73 b(One)51 b(need)f(only)h(c)-5
b(hange)1478 5105 y Fo(foo-interface)55 b Fs(and)f(inform)g(the)e(dev)
-5 b(elopmen)g(t)54 b(system)g(of)f(that)f(c)-5 b(hange)54
b(\(using,)g(sa)-5 b(y)-14 b(,)1478 5304 y(an)67 b(appropriate)g(Emacs)
g(command\),)k(and)c Fo(foo)p Fs('s)h(binding)g(of)e
Fo(b)h Fs(will)g(b)5 b(e)67 b(found)g(when)1478 5503
y(pro)5 b(cedure)55 b Fo(d)g Fs(is)h(called.)1727 5704
y(Similarly)-14 b(,)48 b(it)c(is)h(also)h(p)5 b(ossible)45
b(to)g(replace)f(a)h(structure;)j(clien)-5 b(ts)45 b(of)f(the)h(old)g
(structure)1478 5903 y(will)53 b(b)5 b(e)53 b(mo)5 b(di\014ed)54
b(so)g(that)f(they)f(see)h(bindings)i(from)f(the)f(new)g(one.)73
b(Shado)-5 b(wing)55 b(is)f(also)1478 6102 y(supp)5 b(orted)56
b(in)g(the)f(same)h(w)-5 b(a)g(y)-14 b(.)75 b(Supp)5
b(ose)56 b(that)f(a)g(clien)-5 b(t)56 b(pac)-5 b(k)c(age)55
b Fg(C)67 b Fs(op)5 b(ens)56 b(a)g(structure)1478 6302
y Fo(foo)68 b Fs(that)f(exp)5 b(orts)67 b(a)h(name)g
Fo(x)p Fs(,)k(and)c Fo(foo)p Fs('s)h(implemen)-5 b(tation)69
b(obtains)f(the)g(binding)h(of)1478 6501 y Fo(x)h Fs(as)g(an)h(imp)5
b(ort)70 b(from)g(some)h(other)e(structure)h Fo(bar)p
Fs(.)118 b(Then)71 b Fg(C)81 b Fs(will)70 b(see)g(the)g(binding)1478
6700 y(from)63 b Fo(bar)p Fs(.)96 b(If)63 b(one)f(then)h(alters)g
Fo(foo)g Fs(so)g(that)f(it)h(shado)-5 b(ws)64 b Fo(bar)p
Fs('s)g(binding)g(of)f Fo(x)g Fs(with)f(a)1478 6899 y(de\014nition)g
(of)g(its)g(o)-5 b(wn,)64 b(then)d(pro)5 b(cedures)62
b(in)g Fg(C)74 b Fs(that)61 b(reference)g Fo(x)h Fs(will)g
(automatically)1478 7099 y(see)55 b Fo(foo)p Fs('s)i(de\014nition)f
(instead)g(of)f(the)g(one)g(from)h Fo(bar)f Fs(that)g(they)g(sa)-5
b(w)56 b(earlier.)1727 7299 y(This)63 b(seman)-5 b(tics)64
b(migh)-5 b(t)63 b(app)5 b(ear)63 b(to)f(require)g(a)g(large)h(amoun)-5
b(t)63 b(of)f(computation)h(on)1478 7498 y(ev)-5 b(ery)48
b(v)-9 b(ariable)49 b(reference:)70 b(The)49 b(sp)5 b(eci\014ed)49
b(b)5 b(eha)-5 b(vior)50 b(requires)f(scanning)h(the)f(pac)-5
b(k)c(age's)1478 7697 y(list)46 b(of)g(op)5 b(ened)46
b(structures,)i(examining)e(their)g(in)-5 b(terfaces,)48
b(on)e(ev)-5 b(ery)45 b(v)-9 b(ariable)46 b(reference,)1478
7897 y(not)58 b(just)h(at)f(compile)g(time.)84 b(Ho)-5
b(w)g(ev)g(er,)59 b(the)f(dev)-5 b(elopmen)g(t)59 b(en)-5
b(vironmen)g(t)59 b(uses)h(cac)-5 b(hing)1478 8096 y(with)55
b(cac)-5 b(he)55 b(in)-5 b(v)c(alidation)56 b(to)f(mak)-5
b(e)56 b(v)-9 b(ariable)55 b(references)g(fast.)1478
8651 y Fl(4.8)269 b(Command)92 b(pro)7 b(cessor)91 b(supp)7
b(ort)1478 9016 y Fs(While)48 b(it)g(is)g(p)5 b(ossible)50
b(to)d(use)i(the)f(Sc)-5 b(heme)48 b(48)h(static)e(link)-5
b(er)49 b(for)f(program)h(dev)-5 b(elopmen)g(t,)1478
9215 y(it)60 b(is)i(far)f(more)g(con)-5 b(v)g(enien)g(t)62
b(to)e(use)i(the)f(dev)-5 b(elopmen)g(t)61 b(en)-5 b(vironmen)g(t,)64
b(whic)-5 b(h)61 b(supp)5 b(orts)1478 9415 y(rapid)53
b(turnaround)g(for)f(program)h(c)-5 b(hanges.)74 b(The)52
b(programmer)h(in)-5 b(teracts)52 b(with)g(the)g(de-)1478
9614 y(v)-5 b(elopmen)g(t)44 b(en)-5 b(vironmen)g(t)45
b(through)f(a)f Fr(c)-8 b(ommand)49 b(pr)-8 b(o)g(c)g(essor)p
Fs(.)68 b(The)44 b(command)h(pro)5 b(cessor)1478 9813
y(is)41 b(lik)-5 b(e)41 b(the)g(usual)h(Lisp)f(read-ev)-9
b(al-prin)k(t)42 b(lo)5 b(op)41 b(in)g(that)g(it)f(accepts)h(Sc)-5
b(heme)42 b(forms)f(to)g(ev)-9 b(al-)1478 10012 y(uate.)73
b(Ho)-5 b(w)g(ev)g(er,)55 b(all)g(meta-lev)-5 b(el)55
b(op)5 b(erations,)55 b(suc)-5 b(h)56 b(as)f(exiting)f(the)h(Sc)-5
b(heme)55 b(system)g(or)4259 10511 y(24)p eop end
%%Page: 25 33
TeXDict begin 25 32 bop 581 1046 a Fs(requests)53 b(for)f(trace)f
(output,)i(are)f(handled)i(b)-5 b(y)52 b Fr(c)-8 b(ommands,)53
b Fs(whic)-5 b(h)53 b(are)f(lexically)g(distin-)581 1245
y(guished)i(from)g(Sc)-5 b(heme)53 b(forms.)74 b(This)54
b(arrangemen)-5 b(t)53 b(is)h(b)5 b(orro)-5 b(w)g(ed)54
b(from)f(the)g(Sym)-5 b(b)5 b(olics)581 1445 y(Lisp)48
b(Mac)-5 b(hine)48 b(system,)i(and)e(is)f(reminiscen)-5
b(t)49 b(of)e(non-Lisp)i(debuggers.)72 b(Commands)49
b(are)581 1644 y(a)71 b(little)f(easier)g(to)h(t)-5 b(yp)5
b(e)69 b(than)i(Sc)-5 b(heme)71 b(forms)g(\(no)g(paren)-5
b(theses,)75 b(so)d(y)-5 b(ou)70 b(don't)h(ha)-5 b(v)g(e)581
1843 y(to)63 b(shift\),)i(but)f(more)f(imp)5 b(ortan)-5
b(tly)-14 b(,)66 b(making)e(them)f(distinct)h(from)f(Sc)-5
b(heme)64 b(forms)g(en-)581 2042 y(sures)c(that)e(programs')j
(namespaces)f(aren't)e(cluttered)g(with)h(inappropriate)h(bindings.)581
2242 y(Equiv)-9 b(alen)k(tly)-14 b(,)62 b(the)e(command)i(set)e(is)i(a)
-5 b(v)c(ailable)61 b(for)f(use)h(regardless)h(of)e(what)h(bindings)581
2441 y(happ)5 b(en)70 b(to)f(b)5 b(e)69 b(visible)h(in)g(the)f(curren)
-5 b(t)69 b(program.)117 b(This)70 b(is)g(esp)5 b(ecially)70
b(imp)5 b(ortan)-5 b(t)69 b(in)581 2640 y(conjunction)59
b(with)f(the)g(mo)5 b(dule)59 b(system,)h(whic)-5 b(h)59
b(puts)g(strict)f(con)-5 b(trols)59 b(on)g(visibilit)-5
b(y)59 b(of)581 2839 y(bindings.)830 3039 y(The)d(Sc)-5
b(heme)56 b(48)g(command)g(pro)5 b(cessor)56 b(supp)5
b(orts)57 b(the)e(mo)5 b(dule)56 b(system)g(with)f(a)h(v)-9
b(a-)581 3238 y(riet)k(y)59 b(of)g(sp)5 b(ecial)60 b(commands.)87
b(F)-14 b(or)60 b(commands)h(that)e(require)g(structure)g(names,)j
(these)581 3437 y(names)g(are)f(resolv)-5 b(ed)62 b(in)f(a)g
(designated)h(con\014guration)f(pac)-5 b(k)c(age)61 b(that)g(is)g
(distinct)h(from)581 3636 y(the)51 b(curren)-5 b(t)50
b(pac)-5 b(k)c(age)51 b(for)f(ev)-9 b(aluating)51 b(Sc)-5
b(heme)51 b(forms)h(giv)-5 b(en)51 b(to)f(the)g(command)i(pro)5
b(ces-)581 3836 y(sor.)110 b(The)68 b(command)g(pro)5
b(cessor)68 b(in)-5 b(terprets)67 b(Sc)-5 b(heme)68 b(forms)g(in)g(a)f
(particular)h(curren)-5 b(t)581 4035 y(pac)g(k)c(age,)64
b(and)f(there)f(are)h(commands)h(that)e(mo)-5 b(v)g(e)63
b(the)f(command)i(pro)5 b(cessor)63 b(b)5 b(et)-5 b(w)g(een)581
4234 y(di\013eren)g(t)56 b(pac)-5 b(k)c(ages.)830 4433
y(Commands)84 b(are)f(in)-5 b(tro)5 b(duced)82 b(b)-5
b(y)83 b(a)f(comma)h(\()p Fo(,)p Fs(\))89 b(and)83 b(end)f(at)g(the)g
(end)h(of)f(line.)581 4633 y(The)61 b(command)g(pro)5
b(cessor's)62 b(prompt)f(consists)h(of)e(the)g(name)h(of)f(the)g
(curren)-5 b(t)61 b(pac)-5 b(k)c(age)581 4832 y(follo)k(w)g(ed)56
b(b)-5 b(y)56 b(a)f(greater-than)g(\()p Fo(>)p Fs(\).)664
5138 y Fo(,open)88 b Fr(structur)-8 b(e)1839 5078 y Fh(\003)996
5338 y Fs(The)66 b Fo(,open)h Fs(command)f(op)5 b(ens)66
b(new)g(structures)g(in)g(the)g(curren)-5 b(t)65 b(pac)-5
b(k)c(age,)69 b(as)d(if)996 5537 y(the)59 b(pac)-5 b(k)c(age's)59
b(de\014nition's)h Fo(open)g Fs(clause)f(had)g(listed)h
Fr(structur)-8 b(e)12 b Fs(.)85 b(As)59 b(with)g Fo(open)996
5736 y Fs(clauses)e(the)e(visible)g(names)i(can)e(b)5
b(e)55 b(mo)5 b(di\014ed,)56 b(as)g(in)996 6076 y Fo(,open)88
b(\(subset)h(foo)e(\(bar)h(baz\)\))996 6415 y Fs(whic)-5
b(h)56 b(only)g(mak)-5 b(es)56 b(the)f Fo(bar)h Fs(and)f
Fo(baz)h Fs(bindings)h(from)f(structure)f Fo(foo)h Fs(visible.)664
6724 y Fo(,config)996 6923 y Fs(The)g Fo(,config)g Fs(command)h(sets)f
(the)f(command)i(pro)5 b(cessor's)56 b(curren)-5 b(t)56
b(pac)-5 b(k)c(age)55 b(to)996 7122 y(b)5 b(e)77 b(the)g(curren)-5
b(t)78 b(con\014guration)g(pac)-5 b(k)c(age.)140 b(F)-14
b(orms)79 b(en)-5 b(tered)77 b(at)g(this)h(p)5 b(oin)-5
b(t)78 b(are)996 7321 y(in)-5 b(terpreted)55 b(as)h(b)5
b(eing)56 b(con\014guration)g(language)g(forms,)g(not)f(Sc)-5
b(heme)56 b(forms.)664 7630 y Fo(,config)89 b Fr(c)-8
b(ommand)996 7829 y Fs(This)76 b(form)f(of)f(the)h Fo(,config)h
Fs(command)f(executes)f(another)h(command)h(in)f(the)996
8028 y(curren)-5 b(t)56 b(con\014guration)g(pac)-5 b(k)c(age.)73
b(F)-14 b(or)56 b(example,)996 8368 y Fo(,config)89 b(,load)f(foo.scm)
996 8708 y Fs(in)-5 b(terprets)59 b(con\014guration)f(language)h(forms)
f(from)g(the)g(\014le)g Fo(foo.scm)h Fs(in)g(the)e(cur-)996
8907 y(ren)-5 b(t)56 b(con\014guration)g(pac)-5 b(k)c(age.)664
9215 y Fo(,config-package-is)90 b Fr(struct-name)996
9415 y Fs(The)45 b Fo(,config-package-is)i Fs(command)e(designates)h(a)
e(new)g(con\014guration)h(pac)-5 b(k-)996 9614 y(age)60
b(for)g(use)g(b)-5 b(y)61 b(the)e Fo(,config)i Fs(command)h(and)e
(resolution)h(of)72 b Fr(struct-name)12 b Fs(s)63 b(for)996
9813 y(other)e(commands)h(suc)-5 b(h)61 b(as)g Fo(,in)h
Fs(and)f Fo(,open)p Fs(.)90 b(See)60 b(section)h(4.9)g(for)f
(information)996 10012 y(on)c(making)g(new)f(con\014guration)h(pac)-5
b(k)c(ages.)3362 10511 y(25)p eop end
%%Page: 26 34
TeXDict begin 26 33 bop 1561 1046 a Fo(,in)88 b Fr(struct-name)1893
1245 y Fs(The)41 b Fo(,in)g Fs(command)h(mo)-5 b(v)g(es)42
b(the)f(command)h(pro)5 b(cessor)41 b(to)g(a)g(sp)5 b(eci\014ed)41
b(structure's)1893 1445 y(underlying)56 b(pac)-5 b(k)c(age.)74
b(F)-14 b(or)56 b(example:)1893 1809 y Fo(user>)88 b(,config)1893
2008 y(config>)g(\(define-structure)i(foo)e(\(export)g(a\))2765
2207 y(\(open)g(scheme\)\))1893 2406 y(config>)g(,in)g(foo)1893
2606 y(foo>)g(\(define)g(a)f(13\))1893 2805 y(foo>)h(a)1893
3004 y(13)1893 3368 y Fs(In)63 b(this)g(example)g(the)g(command)h(pro)5
b(cessor)63 b(starts)h(in)f(a)g(pac)-5 b(k)c(age)62 b(called)h
Fo(user)p Fs(,)1893 3568 y(but)48 b(the)g Fo(,config)h
Fs(command)g(mo)-5 b(v)g(es)49 b(it)f(in)-5 b(to)48 b(the)g
(con\014guration)g(pac)-5 b(k)c(age,)50 b(whic)-5 b(h)1893
3767 y(has)47 b(the)g(name)g Fo(config)p Fs(.)72 b(The)47
b Fo(define-structure)i Fs(form)e(binds,)j(in)d Fo(config)p
Fs(,)j(the)1893 3966 y(name)63 b Fo(foo)f Fs(to)g(a)h(structure)f(that)
f(exp)5 b(orts)62 b Fo(a)p Fs(.)95 b(Finally)-14 b(,)65
b(the)d(command)h Fo(,in)88 b(foo)1893 4165 y Fs(mo)-5
b(v)g(es)56 b(the)f(command)i(pro)5 b(cessor)56 b(in)-5
b(to)55 b(structure)g Fo(foo)p Fs('s)i(underlying)f(pac)-5
b(k)c(age.)1893 4424 y(A)65 b(pac)-5 b(k)c(age's)66 b(b)5
b(o)g(dy)66 b(isn't)g(executed)f(\(ev)-9 b(aluated\))64
b(un)-5 b(til)66 b(the)g(pac)-5 b(k)c(age)65 b(is)i Fr(lo)-8
b(ade)g(d)p Fs(,)1893 4623 y(whic)j(h)56 b(is)g(accomplished)h(b)-5
b(y)55 b(the)g Fo(,load-package)j Fs(command.)1561 4942
y Fo(,in)88 b Fr(struct-name)101 b(c)-8 b(ommand)1893
5141 y Fs(This)67 b(form)f(of)g(the)g Fo(,in)h Fs(command)g(executes)f
(a)g(single)h(command)g(in)g(the)f(sp)5 b(ec-)1893 5340
y(i\014ed)63 b(pac)-5 b(k)c(age)61 b(without)h(mo)-5
b(ving)63 b(the)f(command)i(pro)5 b(cessor)62 b(in)-5
b(to)63 b(that)e(pac)-5 b(k)c(age.)1893 5540 y(Example:)1893
5904 y Fo(,in)88 b(mumble)g(\(cons)g(1)f(2\))1893 6103
y(,in)h(mumble)g(,trace)g(foo)1561 6467 y(,user)g([)p
Fr(c)-8 b(ommand)17 b Fo(])1893 6666 y Fs(This)44 b(is)h(similar)f(to)g
(the)f Fo(,config)i Fs(and)f Fo(,in)g Fs(commands.)71
b(It)44 b(mo)-5 b(v)g(es)44 b(to)g(or)f(executes)1893
6866 y(a)67 b(command)g(in)g(the)g(user)g(pac)-5 b(k)c(age)66
b(\(whic)-5 b(h)67 b(is)h(the)e(default)g(pac)-5 b(k)c(age)67
b(when)g(the)1893 7065 y(Sc)-5 b(heme)56 b(48)f(command)i(pro)5
b(cessor)56 b(starts\).)1561 7383 y Fo(,user-package-is)90
b Fr(name)1893 7582 y Fs(The)59 b Fo(,user-package-is)j
Fs(command)e(designates)g(a)g(new)f(user)h(pac)-5 b(k)c(age)59
b(for)g(use)1893 7782 y(b)-5 b(y)56 b(the)e Fo(,user)j
Fs(command.)1561 8100 y Fo(,load-package)89 b Fr(struct-name)1893
8299 y Fs(The)63 b Fo(,load-package)j Fs(command)e(ensures)h(that)e
(the)g(sp)5 b(eci\014ed)64 b(structure's)f(un-)1893 8499
y(derlying)j(pac)-5 b(k)c(age's)66 b(program)h(has)f(b)5
b(een)66 b(loaded.)106 b(This)66 b(consists)h(of)f(\(1\))f(recur-)1893
8698 y(siv)-5 b(ely)49 b(ensuring)i(that)d(the)h(pac)-5
b(k)c(ages)49 b(of)g(an)-5 b(y)49 b(op)5 b(ened)49 b(or)h(accessed)f
(structures)g(are)1893 8897 y(loaded,)72 b(follo)-5 b(w)g(ed)69
b(b)-5 b(y)68 b(\(2\))f(executing)h(the)g(pac)-5 b(k)c(age's)68
b(b)5 b(o)g(dy)68 b(as)g(sp)5 b(eci\014ed)69 b(b)-5 b(y)68
b(its)1893 9096 y(de\014nition's)56 b Fo(begin)h Fs(and)f
Fo(files)g Fs(forms.)1561 9415 y Fo(,reload-package)90
b Fr(struct-name)1893 9614 y Fs(This)61 b(command)h(re-executes)d(the)h
(structure's)h(pac)-5 b(k)c(age's)61 b(program.)90 b(It)60
b(is)h(most)1893 9813 y(useful)67 b(if)g(the)f(program)h(comes)h(from)e
(a)h(\014le)g(or)g(\014les,)j(when)d(it)f(will)h(up)5
b(date)67 b(the)1893 10012 y(pac)-5 b(k)c(age's)56 b(bindings)h(after)d
(m)-5 b(utations)57 b(to)e(its)g(source)h(\014le.)4259
10511 y(26)p eop end
%%Page: 27 35
TeXDict begin 27 34 bop 664 1046 a Fo(,load)88 b Fr(\014lesp)-8
b(e)g(c)97 b Fo(...)996 1245 y Fs(The)58 b Fo(,load)h
Fs(command)g(executes)e(forms)h(from)g(the)f(sp)5 b(eci\014ed)59
b(\014le)f(or)f(\014les)i(in)f(the)996 1445 y(curren)-5
b(t)39 b(pac)-5 b(k)c(age.)67 b Fo(,load)88 b Fr(\014lesp)-8
b(e)g(c)49 b Fs(is)38 b(similar)i(to)e Fo(\(load)88 b(")p
Fr(\014lesp)-8 b(e)g(c)9 b Fo("\))39 b Fs(except)e(that)996
1644 y(the)48 b(name)h Fo(load)h Fs(needn't)e(b)5 b(e)49
b(b)5 b(ound)49 b(in)g(the)f(curren)-5 b(t)49 b(pac)-5
b(k)c(age)48 b(to)g(Sc)-5 b(heme's)50 b Fo(load)996 1843
y Fs(pro)5 b(cedure.)664 2177 y Fo(,for-syntax)89 b([)p
Fr(c)-8 b(ommand)17 b Fo(])996 2376 y Fs(This)45 b(is)f(similar)h(to)e
(the)g Fo(,config)i Fs(and)f Fo(,in)g Fs(commands.)72
b(It)43 b(mo)-5 b(v)g(es)45 b(to)e(or)h(executes)996
2575 y(a)68 b(command)i(in)e(the)g(curren)-5 b(t)68 b(pac)-5
b(k)c(age's)68 b(\\pac)-5 b(k)c(age)68 b(for)g(syn)-5
b(tax,")72 b(whic)-5 b(h)68 b(is)h(the)996 2775 y(pac)-5
b(k)c(age)44 b(in)g(whic)-5 b(h)45 b(the)f(forms)g Fg(f)62
b Fs(in)45 b Fo(\(define-syntax)89 b Fr(name)100 b(f)35
b Fo(\))44 b Fs(are)g(ev)-9 b(aluated.)664 3109 y Fo(,new-package)996
3308 y Fs(The)70 b Fo(,new-package)j Fs(command)e(creates)f(a)g(new)g
(pac)-5 b(k)c(age,)73 b(in)e(whic)-5 b(h)71 b(only)f(the)996
3507 y(standard)56 b(Sc)-5 b(heme)55 b(bindings)h(are)e(visible,)i(and)
f(mo)-5 b(v)g(es)55 b(the)g(command)g(pro)5 b(cessor)996
3706 y(to)55 b(it.)664 4040 y Fo(,structure)89 b Fr(name)100
b(interfac)-8 b(e)996 4239 y Fs(The)59 b Fo(,structure)i
Fs(command)f(de\014nes)g Fr(name)72 b Fs(in)60 b(the)f(con\014guration)
g(pac)-5 b(k)c(age)59 b(to)996 4439 y(b)5 b(e)55 b(a)h(structure)f
(with)g(in)-5 b(terface)55 b Fr(interfac)-8 b(e)69 b
Fs(based)56 b(on)f(the)g(curren)-5 b(t)56 b(pac)-5 b(k)c(age.)581
4990 y Fl(4.9)270 b(Con\014guration)92 b(pac)-7 b(k)-15
b(ages)581 5355 y Fs(It)57 b(is)i(p)5 b(ossible)59 b(to)e(set)h(up)g(m)
-5 b(ultiple)59 b(con\014guration)f(pac)-5 b(k)c(ages.)81
b(The)58 b(default)g(con\014gura-)581 5554 y(tion)d(pac)-5
b(k)c(age)56 b(op)5 b(ens)55 b(the)g(follo)-5 b(wing)56
b(structures:)830 5887 y Fj(\017)83 b Fo(module-system)p
Fs(,)52 b(whic)-5 b(h)48 b(exp)5 b(orts)47 b Fo(define-structure)j
Fs(and)e(the)g(other)f(con\014gu-)996 6086 y(ration)f(language)g(k)-5
b(eyw)g(ords,)48 b(as)e(w)-5 b(ell)46 b(as)g(standard)g(t)-5
b(yp)5 b(es)46 b(and)g(t)-5 b(yp)5 b(e)44 b(constructors)996
6286 y(\()p Fo(:syntax)p Fs(,)57 b Fo(:value)p Fs(,)f
Fo(proc)p Fs(,)g(etc.\).)830 6619 y Fj(\017)83 b Fo
(built-in-structures)p Fs(,)76 b(whic)-5 b(h)69 b(exp)5
b(orts)68 b(structures)h(that)f(are)h(built)g(in)-5 b(to)69
b(the)996 6819 y(initial)82 b(Sc)-5 b(heme)82 b(48)f(image;)95
b(these)81 b(include)h Fo(scheme)p Fs(,)89 b Fo(threads)p
Fs(,)g Fo(tables)p Fs(,)g(and)996 7018 y Fo(records)p
Fs(.)830 7352 y Fj(\017)83 b Fo(more-structures)p Fs(,)102
b(whic)-5 b(h)90 b(exp)5 b(orts)90 b(additional)h(structures)f(that)f
(are)h(a)-5 b(v)c(ail-)996 7551 y(able)71 b(in)f(the)g(dev)-5
b(elopmen)g(t)71 b(en)-5 b(vironmen)g(t.)119 b(A)70 b(complete)g
(listing)h(can)f(b)5 b(e)70 b(found)996 7750 y(in)j(the)f(de\014nition)
h(of)85 b Fo(more-structures-interface)76 b Fs(at)c(the)g(end)h(of)f
(the)g(\014le)996 7950 y Fo(scheme/packages.scm)p Fs(.)581
8283 y(Note)54 b(that)h(it)g(do)5 b(es)56 b(not)f(op)5
b(en)55 b Fo(scheme)p Fs(.)830 8483 y(Y)-14 b(ou)56 b(can)g(de\014ne)g
(additional)g(con\014guration)g(pac)-5 b(k)c(ages)56
b(b)-5 b(y)56 b(making)g(a)g(pac)-5 b(k)c(age)55 b(that)581
8682 y(op)5 b(ens)37 b Fo(module-system)j Fs(and,)h(optionally)-14
b(,)41 b Fo(built-in-structures)p Fs(,)j Fo(more-structures)p
Fs(,)581 8881 y(or)56 b(other)f(structures)g(that)g(exp)5
b(ort)54 b(structures)i(and)g(in)-5 b(terfaces.)830 9081
y(F)-14 b(or)56 b(example:)581 9415 y Fo(>)87 b(,config)i
(\(define-structure)h(foo)e(\(export\))1627 9614 y(\(open)g
(module-system)2150 9813 y(built-in-structures)2150 10012
y(more-structures\)\))3362 10511 y Fs(27)p eop end
%%Page: 28 36
TeXDict begin 28 35 bop 1478 1046 a Fo(>)87 b(,in)h(foo)1478
1245 y(foo>)g(\(define-structure)i(x)d(\(export)h(a)g(b\))2088
1445 y(\(open)g(scheme\))2088 1644 y(\(files)g(x\)\))1478
1843 y(foo>)1727 2150 y Fs(Unfortunately)-14 b(,)49 b(the)e(ab)5
b(o)-5 b(v)g(e)49 b(example)f(do)5 b(es)48 b(not)g(w)-5
b(ork.)72 b(The)48 b(problem)h(is)f(that)g(ev)-5 b(ery)1478
2349 y(en)g(vironmen)g(t)71 b(in)g(whic)-5 b(h)71 b Fo
(define-structure)i Fs(is)e(de\014ned)g(m)-5 b(ust)72
b(also)f(ha)-5 b(v)g(e)71 b(a)f(w)-5 b(a)g(y)71 b(to)1478
2549 y(create)50 b(\\re\015ectiv)-5 b(e)51 b(to)-5 b(w)g(ers")52
b(\(a)f(misnomer;)j(a)e(b)5 b(etter)50 b(name)i(w)-5
b(ould)52 b(b)5 b(e)51 b(\\syn)-5 b(tactic)51 b(to)-5
b(w-)1478 2748 y(ers"\).)71 b(A)46 b(new)h(re\015ectiv)-5
b(e)47 b(to)-5 b(w)g(er)47 b(is)h(required)e(whenev)-5
b(er)47 b(a)g(new)g(en)-5 b(vironmen)g(t)48 b(is)g(created)1478
2947 y(for)63 b(compiling)h(the)e(source)i(co)5 b(de)62
b(in)h(the)g(pac)-5 b(k)c(age)62 b(asso)5 b(ciated)64
b(with)e(a)h(new)g(structure.)1478 3146 y(The)41 b(en)-5
b(vironmen)g(t's)42 b(to)-5 b(w)g(er)42 b(is)f(used)h(at)f(compile)h
(time)f(for)f(ev)-9 b(aluating)41 b(the)g Fr(macr)-8
b(o-sour)g(c)g(e)1478 3346 y Fs(in)1478 3653 y Fo(\(define-syntax)89
b Fr(name)100 b(macr)-8 b(o-sour)g(c)g(e)12 b Fo(\))1478
3852 y(\(let-syntax)89 b(\(\()p Fr(name)100 b(macr)-8
b(o-sour)g(c)g(e)12 b Fo(\))88 b Fr(...)p Fo(\))f Fr(b)-8
b(o)g(dy)15 b Fo(\))1478 4159 y Fs(and)48 b(so)g(forth.)71
b(It)47 b(is)h(a)g(\\to)-5 b(w)g(er")48 b(b)5 b(ecause)47
b(that)g(en)-5 b(vironmen)g(t,)50 b(in)e(turn,)i(has)e(to)f(sa)-5
b(y)49 b(what)1478 4358 y(en)-5 b(vironmen)g(t)56 b(to)f(use)h(if)68
b Fo(macro-source)57 b Fs(itself)f(con)-5 b(tains)56
b(a)f(use)h(of)68 b Fo(let-syntax)p Fs(.)1727 4558 y(The)51
b(simplest)h(w)-5 b(a)g(y)52 b(to)f(pro)-5 b(vide)51
b(a)h(to)-5 b(w)g(er)51 b(mak)-5 b(er)51 b(is)h(to)f(pass)h(on)g(the)e
(one)i(used)g(b)-5 b(y)51 b(an)1478 4757 y(existing)73
b(con\014guration)i(pac)-5 b(k)c(age.)128 b(The)74 b(sp)5
b(ecial)74 b(form)f Fo(export-reflective-tower)1478 4956
y Fs(creates)63 b(an)i(in)-5 b(terface)64 b(that)f(exp)5
b(orts)64 b(a)g(con\014guration)h(pac)-5 b(k)c(age's)64
b(to)-5 b(w)g(er.)101 b(The)64 b(follo)-5 b(w-)1478 5155
y(ing)49 b(example)g(uses)h Fo(export-reflective-tower)j
Fs(and)c(the)g Fo(,structure)i Fs(command)f(to)1478 5355
y(obtain)55 b(a)h(to)-5 b(w)g(er)55 b(mak)-5 b(er)56
b(and)g(create)e(a)h(new)h(con\014guration)g(en)-5 b(vironmen)g(t.)1478
5689 y Fo(>)87 b(,config)i(,structure)f(t)g
(\(export-reflective-tower-maker\))1478 5888 y(>)f(,config)i
(\(define-structure)h(foo)d(\(export\))2524 6087 y(\(open)h
(module-system)3047 6287 y(t)3047 6486 y(built-in-structures)3047
6685 y(more-structures\)\))1478 7229 y Fl(4.10)270 b(Discussion)1478
7592 y Fs(This)52 b(mo)5 b(dule)52 b(system)h(w)-5 b(as)52
b(not)g(designed)g(as)h(the)e(b)5 b(e-all)52 b(and)g(end-all)h(of)e(Sc)
-5 b(heme)53 b(mo)5 b(d-)1478 7792 y(ule)70 b(systems;)78
b(it)70 b(w)-5 b(as)70 b(only)g(in)-5 b(tended)71 b(to)e(help)h(us)h
(organize)f(the)f(Sc)-5 b(heme)71 b(48)f(system.)1478
7991 y(Not)g(only)g(do)5 b(es)71 b(the)f(mo)5 b(dule)72
b(system)f(help)g(a)-5 b(v)g(oid)71 b(name)g(clashes)h(b)-5
b(y)71 b(k)-5 b(eeping)71 b(di\013er-)1478 8190 y(en)-5
b(t)79 b(subsystems)j(in)d(di\013eren)-5 b(t)80 b(namespaces,)87
b(it)79 b(has)h(also)h(help)5 b(ed)79 b(us)h(to)f(tigh)-5
b(ten)80 b(up)1478 8389 y(and)74 b(generalize)f(Sc)-5
b(heme)74 b(48's)g(in)-5 b(ternal)74 b(in)-5 b(terfaces.)128
b(Sc)-5 b(heme)74 b(48)f(is)h(un)-5 b(usual)76 b(among)1478
8589 y(Lisp)54 b(implemen)-5 b(tations)56 b(in)e(admitting)g(man)-5
b(y)55 b(di\013eren)-5 b(t)54 b(p)5 b(ossible)55 b(mo)5
b(des)55 b(of)e(op)5 b(eration.)1478 8788 y(Examples)56
b(of)f(suc)-5 b(h)56 b(m)-5 b(ultiple)57 b(mo)5 b(des)56
b(include)g(the)f(follo)-5 b(wing:)1727 9095 y Fj(\017)83
b Fs(Linking)55 b(can)h(b)5 b(e)55 b(either)g(static)g(or)g(dynamic.)
1727 9415 y Fj(\017)83 b Fs(The)43 b(dev)-5 b(elopmen)g(t)44
b(en)-5 b(vironmen)g(t)44 b(\(compiler,)h(debugger,)h(and)e(command)g
(pro)5 b(ces-)1893 9614 y(sor\))51 b(can)g(run)g(either)f(in)i(the)e
(same)i(address)g(space)f(as)g(the)g(program)g(b)5 b(eing)51
b(dev)-5 b(el-)1893 9813 y(op)5 b(ed)58 b(or)h(in)f(a)h(di\013eren)-5
b(t)58 b(address)i(space.)83 b(The)59 b(en)-5 b(vironmen)g(t)59
b(and)g(user)g(program)1893 10012 y(ma)-5 b(y)49 b(ev)-5
b(en)49 b(run)g(on)g(di\013eren)-5 b(t)49 b(pro)5 b(cessors)50
b(under)f(di\013eren)-5 b(t)49 b(op)5 b(erating)48 b(systems[8)q(].)
4259 10511 y(28)p eop end
%%Page: 29 37
TeXDict begin 29 36 bop 830 1046 a Fj(\017)83 b Fs(The)63
b(virtual)f(mac)-5 b(hine)63 b(can)g(b)5 b(e)62 b(supp)5
b(orted)63 b(b)-5 b(y)62 b(either)g(of)g(t)-5 b(w)g(o)63
b(implemen)-5 b(tations)996 1245 y(of)55 b(its)h(implemen)-5
b(tation)56 b(language,)g(Presc)-5 b(heme.)581 1577 y(The)68
b(mo)5 b(dule)68 b(system)g(has)g(b)5 b(een)67 b(helpful)h(in)g
(organizing)g(these)g(m)-5 b(ultiple)68 b(mo)5 b(des.)111
b(By)581 1777 y(forcing)40 b(us)h(to)f(write)g(do)-5
b(wn)41 b(in)-5 b(terfaces)40 b(and)h(mo)5 b(dule)41
b(dep)5 b(endencies,)44 b(the)c(mo)5 b(dule)40 b(system)581
1976 y(helps)50 b(us)f(to)g(k)-5 b(eep)48 b(the)h(system)g(clean,)h(or)
f(at)f(least)h(to)g(k)-5 b(eep)48 b(us)i(honest)f(ab)5
b(out)48 b(ho)-5 b(w)50 b(clean)581 2175 y(or)56 b(not)f(it)g(is.)830
2374 y(The)47 b(need)f(to)g(mak)-5 b(e)47 b(structures)f(and)h(in)-5
b(terfaces)47 b(second-class)h(instead)f(of)f(\014rst-class)581
2574 y(results)i(from)g(the)f(requiremen)-5 b(ts)48 b(of)g(static)f
(program)h(analysis:)71 b(it)47 b(m)-5 b(ust)49 b(b)5
b(e)47 b(p)5 b(ossible)49 b(for)581 2773 y(the)59 b(compiler)g(and)h
(link)-5 b(er)59 b(to)g(expand)g(macros)h(and)f(resolv)-5
b(e)60 b(v)-9 b(ariable)59 b(bindings)h(b)5 b(efore)581
2972 y(the)47 b(program)h(is)g(executed.)71 b(Structures)47
b(could)h(b)5 b(e)47 b(made)h(\014rst-class)h(\(as)e(in)h(FX[10]\))f
(if)h(a)581 3171 y(t)-5 b(yp)5 b(e)50 b(system)i(w)-5
b(ere)51 b(added)g(to)g(Sc)-5 b(heme)52 b(and)f(the)g(de\014nitions)h
(of)f(exp)5 b(orted)50 b(macros)i(w)-5 b(ere)581 3371
y(de\014ned)67 b(in)g(in)-5 b(terfaces)66 b(instead)h(of)g(in)f(mo)5
b(dule)67 b(b)5 b(o)g(dies,)70 b(but)c(ev)-5 b(en)67
b(in)f(that)g(case)h(t)-5 b(yp)5 b(es)581 3570 y(and)56
b(in)-5 b(terfaces)55 b(w)-5 b(ould)57 b(remain)f(second-class.)830
3769 y(The)67 b(prohibition)h(on)f(assignmen)-5 b(t)69
b(to)d(imp)5 b(orted)67 b(bindings)i(mak)-5 b(es)68 b(substitution)g(a)
581 3968 y(v)-9 b(alid)62 b(optimization)g(when)g(a)g(mo)5
b(dule)62 b(is)g(compiled)h(as)f(a)g(blo)5 b(c)-5 b(k.)93
b(The)62 b(blo)5 b(c)-5 b(k)61 b(compiler)581 4168 y(\014rst)e(scans)h
(the)f(en)-5 b(tire)59 b(mo)5 b(dule)59 b(b)5 b(o)g(dy)-14
b(,)59 b(noting)h(whic)-5 b(h)59 b(v)-9 b(ariables)59
b(are)g(assigned.)86 b(Those)581 4367 y(that)40 b(aren't)g(assigned)h
(\(only)f Fo(define)p Fs(d\))h(ma)-5 b(y)41 b(b)5 b(e)40
b(assumed)h(nev)-5 b(er)41 b(assigned,)j(ev)-5 b(en)40
b(if)g(they)581 4566 y(are)48 b(exp)5 b(orted.)70 b(The)48
b(optimizer)f(can)h(then)g(p)5 b(erform)47 b(a)h(v)-5
b(ery)47 b(simple-minded)j(analysis)f(to)581 4765 y(determine)60
b(automatically)g(that)f(some)h(pro)5 b(cedures)61 b(can)e(and)i
(should)g(ha)-5 b(v)g(e)60 b(their)g(calls)581 4965 y(compiled)c(in)g
(line.)830 5164 y(The)50 b(programming)h(st)-5 b(yle)49
b(encouraged)h(b)-5 b(y)50 b(the)f(mo)5 b(dule)50 b(system)g(is)g
(consisten)-5 b(t)51 b(with)581 5363 y(the)h(unextended)h(Sc)-5
b(heme)53 b(language.)74 b(Because)52 b(mo)5 b(dule)53
b(system)g(features)g(do)g(not)f(gen-)581 5562 y(erally)f(sho)-5
b(w)53 b(up)f(within)g(mo)5 b(dule)52 b(b)5 b(o)g(dies,)53
b(an)f(individual)g(mo)5 b(dule)52 b(ma)-5 b(y)52 b(b)5
b(e)52 b(understo)5 b(o)g(d)581 5762 y(b)-5 b(y)56 b(someone)h(who)f
(is)g(not)g(familiar)g(with)g(the)f(mo)5 b(dule)56 b(system.)76
b(This)56 b(is)h(a)f(great)f(aid)h(to)581 5961 y(co)5
b(de)54 b(presen)-5 b(tation)55 b(and)g(p)5 b(ortabilit)-5
b(y)-14 b(.)74 b(If)54 b(a)h(few)f(simple)i(conditions)f(are)g(met)f
(\(no)g(name)581 6160 y(con\015icts)70 b(b)5 b(et)-5
b(w)g(een)68 b(pac)-5 b(k)c(ages,)73 b(and)d(use)f(of)g
Fo(files)h Fs(in)g(preference)e(to)h Fo(begin)p Fs(\),)k(then)c(a)581
6359 y(m)-5 b(ulti-mo)5 b(dule)62 b(program)f(can)f(b)5
b(e)60 b(loaded)h(in)-5 b(to)60 b(a)h(Sc)-5 b(heme)61
b(implemen)-5 b(tation)61 b(that)e(do)5 b(es)581 6559
y(not)48 b(supp)5 b(ort)49 b(the)e(mo)5 b(dule)49 b(system.)72
b(The)48 b(Sc)-5 b(heme)49 b(48)f(static)f(link)-5 b(er)49
b(satis\014es)g(these)f(con-)581 6758 y(ditions,)66 b(and)e(can)f
(therefore)g(run)h(in)f(other)g(Sc)-5 b(heme)64 b(implemen)-5
b(tations.)99 b(Sc)-5 b(heme)64 b(48's)581 6957 y(b)5
b(o)g(otstrap)40 b(pro)5 b(cess,)43 b(whic)-5 b(h)41
b(is)g(based)f(on)h(the)e(static)h(link)-5 b(er,)43 b(is)e(therefore)e
(nonincestuous.)581 7156 y(This)58 b(con)-5 b(trasts)58
b(with)f(most)h(other)f(in)-5 b(tegrated)57 b(programming)i(en)-5
b(vironmen)g(ts,)60 b(suc)-5 b(h)58 b(as)581 7356 y(Smalltalk-80,)70
b(where)c(the)g(system)g(can)g(only)h(b)5 b(e)65 b(built)i(using)g(an)g
(existing)f(v)-5 b(ersion)67 b(of)581 7555 y(the)55 b(system)h(itself.)
830 7754 y(Lik)-5 b(e)68 b(ML)g(mo)5 b(dules,)72 b(but)c(unlik)-5
b(e)69 b(Sc)-5 b(heme)69 b(Xero)-5 b(x)67 b(mo)5 b(dules,)72
b(this)d(mo)5 b(dule)68 b(system)581 7954 y(is)d(comp)5
b(ositional.)100 b(That)64 b(is,)j(structures)d(are)g(constructed)f(b)
-5 b(y)65 b(single)f(syn)-5 b(tactic)64 b(units)581 8153
y(that)j(comp)5 b(ose)68 b(existing)f(structures)g(with)h(a)f(b)5
b(o)g(dy)67 b(of)g(co)5 b(de.)109 b(In)67 b(Sc)-5 b(heme)68
b(Xero)-5 b(x,)70 b(the)581 8352 y(set)51 b(of)g(mo)5
b(dules)52 b(that)f(can)g(con)-5 b(tribute)51 b(to)g(an)g(in)-5
b(terface)51 b(is)h(op)5 b(en-ended)52 b(|)f(an)-5 b(y)51
b(mo)5 b(dule)581 8551 y(can)62 b(con)-5 b(tribute)62
b(bindings)i(to)d(an)-5 b(y)63 b(in)-5 b(terface)61 b(whose)h(name)h
(is)f(in)h(scop)5 b(e.)93 b(The)62 b(mo)5 b(dule)581
8751 y(system)52 b(implemen)-5 b(tation)52 b(is)g(a)f(cross-bar)i(that)
e(c)-5 b(hannels)52 b(de\014nitions)h(from)e(mo)5 b(dules)52
b(to)581 8950 y(in)-5 b(terfaces.)72 b(The)51 b(mo)5
b(dule)50 b(system)h(describ)5 b(ed)51 b(here)f(has)h(simpler)h(seman)
-5 b(tics)51 b(and)g(mak)-5 b(es)581 9149 y(dep)5 b(endencies)77
b(easier)g(to)f(trace.)137 b(It)76 b(also)h(allo)-5 b(ws)78
b(for)e(higher-order)i(mo)5 b(dules,)83 b(whic)-5 b(h)581
9348 y(Sc)g(heme)56 b(Xero)-5 b(x)55 b(considers)i(unimp)5
b(ortan)-5 b(t.)3362 10511 y(29)p eop end
%%Page: 30 38
TeXDict begin 30 37 bop 1478 2292 a Fn(Chapter)129 b(5)1478
3123 y Fq(Libraries)1478 3987 y Fs(Use)56 b(the)h Fo(,open)h
Fs(command)g(\(section)e(3.4\))h(or)g(the)f(mo)5 b(dule)57
b(language)h(\(c)-5 b(hapter)56 b(2.6\))h(to)1478 4186
y(op)5 b(en)55 b(the)g(structures)h(describ)5 b(ed)55
b(b)5 b(elo)-5 b(w.)1478 4738 y Fl(5.1)269 b(General)90
b(utilities)1478 5103 y Fs(These)55 b(are)h(in)f(the)g
Fo(big-util)i Fs(structure.)1511 5404 y Fj(\017)83 b
Fo(\(atom?)101 b Fr(value)12 b Fo(\))85 b Fj(!)e Fr(b)-8
b(o)g(ole)g(an)1478 5705 y Fo(\(atom?)175 b Fr(x)20 b
Fo(\))56 b Fs(is)g(the)f(same)h(as)g Fo(\(not)87 b(\(pair?)176
b Fr(x)20 b Fo(\)\))p Fs(.)1511 6005 y Fj(\017)83 b Fo(\(null-list?)102
b Fr(list)16 b Fo(\))83 b Fj(!)g Fr(b)-8 b(o)g(ole)g(an)1478
6306 y Fs(Returns)55 b(true)g(for)f(the)h(empt)-5 b(y)55
b(list,)g(false)g(for)f(a)h(pair,)h(and)f(signals)h(an)f(error)g
(otherwise.)1511 6607 y Fj(\017)83 b Fo(\(neq?)101 b
Fr(value)84 b(value)12 b Fo(\))85 b Fj(!)e Fr(b)-8 b(o)g(ole)g(an)1478
6908 y Fo(\(neq?)175 b Fr(x)107 b(y)15 b Fo(\))55 b Fs(is)h(the)f(same)
h(as)g Fo(\(not)88 b(\(eq?)175 b Fr(x)107 b(y)14 b Fo(\)\))p
Fs(.)1511 7208 y Fj(\017)83 b Fo(\(n=)h Fr(numb)-8 b(er)83
b(numb)-8 b(er)18 b Fo(\))84 b Fj(!)f Fr(b)-8 b(o)g(ole)g(an)1478
7509 y Fo(\(n=)87 b Fr(x)108 b(y)14 b Fo(\))56 b Fs(is)f(the)g(same)h
(as)g Fo(\(not)88 b(\(=)g Fr(x)107 b(y)14 b Fo(\)\))p
Fs(.)1511 7810 y Fj(\017)83 b Fo(\(identity)i Fr(value)12
b Fo(\))84 b Fj(!)g Fr(value)1511 8009 y Fj(\017)f Fo(\(no-op)h
Fr(value)12 b Fo(\))85 b Fj(!)e Fr(value)1478 8310 y
Fs(These)49 b(b)5 b(oth)50 b(just)f(return)g(their)h(argumen)-5
b(t.)72 b Fo(No-op)50 b Fs(is)g(guaran)-5 b(teed)50 b(not)g(to)f(b)5
b(e)49 b(compiled)1478 8509 y(in-line,)56 b Fo(identity)h
Fs(ma)-5 b(y)56 b(b)5 b(e.)1511 8810 y Fj(\017)83 b Fo(\(memq?)101
b Fr(value)84 b(list)16 b Fo(\))84 b Fj(!)f Fr(b)-8 b(o)g(ole)g(an)1478
9110 y Fs(Returns)56 b(true)f(if)g Fr(value)69 b Fs(is)56
b(in)g Fr(list)16 b Fs(,)55 b(false)h(otherwise.)1511
9411 y Fj(\017)83 b Fo(\(any?)101 b Fr(pr)-8 b(e)g(dic)g(ate)82
b(list)16 b Fo(\))84 b Fj(!)f Fr(b)-8 b(o)g(ole)g(an)1478
9712 y Fs(Returns)56 b(true)f(if)g Fr(pr)-8 b(e)g(dic)g(ate)67
b Fs(is)56 b(true)f(for)g(an)-5 b(y)56 b(elemen)-5 b(t)55
b(of)g Fr(list)17 b Fs(.)1511 10012 y Fj(\017)83 b Fo(\(every?)101
b Fr(pr)-8 b(e)g(dic)g(ate)83 b(list)16 b Fo(\))83 b
Fj(!)g Fr(b)-8 b(o)g(ole)g(an)4259 10511 y Fs(30)p eop
end
%%Page: 31 39
TeXDict begin 31 38 bop 581 1046 a Fs(Returns)56 b(true)f(if)g
Fr(pr)-8 b(e)g(dic)g(ate)68 b Fs(is)55 b(true)g(for)h(ev)-5
b(ery)54 b(elemen)-5 b(t)56 b(of)f Fr(list)16 b Fs(.)614
1367 y Fj(\017)83 b Fo(\(any)h Fr(pr)-8 b(e)g(dic)g(ate)83
b(list)16 b Fo(\))83 b Fj(!)g Fr(value)614 1567 y Fj(\017)g
Fo(\(first)h Fr(pr)-8 b(e)g(dic)g(ate)83 b(list)16 b
Fo(\))83 b Fj(!)g Fr(value)581 1888 y Fo(Any)53 b Fs(returns)g(some)h
(elemen)-5 b(t)52 b(of)h Fr(list)68 b Fs(for)53 b(whic)-5
b(h)53 b Fr(pr)-8 b(e)g(dic)g(ate)65 b Fs(is)53 b(true,)g(or)g(false)f
(if)h(there)f(are)581 2087 y(none.)107 b Fo(First)67
b Fs(do)5 b(es)66 b(the)g(same)h(except)e(that)h(it)g(returns)g(the)g
(\014rst)h(elemen)-5 b(t)66 b(for)g(whic)-5 b(h)581 2286
y Fr(pr)d(e)g(dic)g(ate)67 b Fs(is)56 b(true.)614 2608
y Fj(\017)83 b Fo(\(filter)i Fr(pr)-8 b(e)g(dic)g(ate)82
b(list)16 b Fo(\))83 b Fj(!)g Fr(list)614 2807 y Fj(\017)g
Fo(\(filter!)102 b Fr(pr)-8 b(e)g(dic)g(ate)82 b(list)16
b Fo(\))84 b Fj(!)f Fr(list)581 3128 y Fs(Returns)61
b(a)g(list)g(con)-5 b(taining)61 b(all)g(of)f(the)g(elemen)-5
b(ts)62 b(of)e Fr(list)77 b Fs(for)60 b(whic)-5 b(h)61
b Fr(pr)-8 b(e)g(dic)g(ate)73 b Fs(is)61 b(true.)581
3327 y(The)55 b(order)h(of)f(the)g(elemen)-5 b(ts)56
b(is)g(preserv)-5 b(ed.)74 b Fo(Filter!)h Fs(ma)-5 b(y)56
b(reuse)g(the)f(storage)g(of)g Fr(list)16 b Fs(.)614
3648 y Fj(\017)83 b Fo(\(filter-map)i Fr(pr)-8 b(o)g(c)g(e)g(dur)g(e)82
b(list)16 b Fo(\))83 b Fj(!)g Fr(list)581 3970 y Fs(The)68
b(same)h(as)g Fo(filter)g Fs(except)e(the)g(returned)h(list)h(con)-5
b(tains)69 b(the)e(results)i(of)f(applying)581 4169 y
Fr(pr)-8 b(o)g(c)g(e)g(dur)g(e)56 b Fs(instead)46 b(of)f(elemen)-5
b(ts)45 b(of)g Fr(list)17 b Fs(.)70 b Fo(\(filter-map)89
b Fr(p)98 b(l)17 b Fo(\))46 b Fs(is)f(the)g(same)h(as)f
Fo(\(filter)581 4368 y(identity)89 b(\(map)f Fr(p)97
b(l)18 b Fo(\)\))p Fs(.)614 4689 y Fj(\017)83 b Fo(\(partition-list)j
Fr(pr)-8 b(e)g(dic)g(ate)82 b(list)16 b Fo(\))84 b Fj(!)f
Fr(list)g(list)614 4889 y Fj(\017)g Fo(\(partition-list!)103
b Fr(pr)-8 b(e)g(dic)g(ate)83 b(list)16 b Fo(\))83 b
Fj(!)g Fr(list)g(list)581 5210 y Fs(The)42 b(\014rst)g(return)g(v)-9
b(alue)42 b(con)-5 b(tains)43 b(those)f(elemen)-5 b(ts)43
b Fr(list)58 b Fs(for)41 b(whic)-5 b(h)43 b Fr(pr)-8
b(e)g(dic)g(ate)54 b Fs(is)43 b(true,)h(the)581 5409
y(second)j(con)-5 b(tains)48 b(the)e(remaining)h(elemen)-5
b(ts.)72 b(The)47 b(order)f(of)h(the)f(elemen)-5 b(ts)47
b(is)g(preserv)-5 b(ed.)581 5608 y Fo(Partition-list!)77
b Fs(ma)-5 b(y)55 b(reuse)h(the)f(storage)g(of)g(the)g
Fr(list)17 b Fs(.)614 5930 y Fj(\017)83 b Fo(\(remove-duplicates)k
Fr(list)16 b Fo(\))83 b Fj(!)g Fr(list)581 6251 y Fs(Returns)66
b(its)f(argumen)-5 b(t)66 b(with)f(all)g(duplicate)g(elemen)-5
b(ts)66 b(remo)-5 b(v)g(ed.)103 b(The)65 b(\014rst)g(instance)581
6450 y(of)55 b(eac)-5 b(h)56 b(elemen)-5 b(t)55 b(is)h(preserv)-5
b(ed.)614 6771 y Fj(\017)83 b Fo(\(delq)h Fr(value)g(list)16
b Fo(\))84 b Fj(!)f Fr(list)614 6971 y Fj(\017)g Fo(\(delq!)101
b Fr(value)85 b(list)16 b Fo(\))83 b Fj(!)g Fr(list)614
7170 y Fj(\017)g Fo(\(delete)i Fr(pr)-8 b(e)g(dic)g(ate)82
b(list)16 b Fo(\))83 b Fj(!)g Fr(list)581 7491 y Fs(All)70
b(three)g(of)g(these)h(return)f Fr(list)87 b Fs(with)70
b(some)h(elemen)-5 b(ts)71 b(remo)-5 b(v)g(ed.)120 b
Fo(Delq)71 b Fs(remo)-5 b(v)g(es)71 b(all)581 7690 y(elemen)-5
b(ts)46 b Fo(eq?)71 b Fs(to)44 b Fr(value)14 b Fs(.)70
b Fo(Delq!)h Fs(do)5 b(es)45 b(the)g(same)h(and)f(ma)-5
b(y)45 b(mo)5 b(dify)45 b(the)g(list)g(argumen)-5 b(t.)581
7890 y Fo(Delete)50 b Fs(remo)-5 b(v)g(es)51 b(all)e(elemen)-5
b(ts)50 b(for)f(whic)-5 b(h)50 b Fr(pr)-8 b(e)g(dic)g(ate)61
b Fs(is)50 b(true.)71 b(Both)49 b Fo(delq)h Fs(and)g
Fo(delete)581 8089 y Fs(ma)-5 b(y)56 b(reuse)g(some)g(of)f(the)g
(storage)g(in)h(the)f(list)g(argumen)-5 b(t,)57 b(but)e(w)-5
b(on't)56 b(mo)5 b(dify)55 b(it.)614 8410 y Fj(\017)83
b Fo(\(reverse!)102 b Fr(list)16 b Fo(\))83 b Fj(!)g
Fr(list)581 8731 y Fs(Destructiv)-5 b(ely)55 b(rev)-5
b(erses)55 b Fr(list)17 b Fs(.)614 9053 y Fj(\017)83
b Fo(\(concatenate-symbol)k Fr(value)d(.)25 b(.)g(.)g
Fo(\))103 b Fj(!)83 b Fr(symb)-8 b(ol)581 9374 y Fs(Returns)63
b(the)e(sym)-5 b(b)5 b(ol)63 b(whose)f(name)h(is)f(pro)5
b(duced)62 b(b)-5 b(y)63 b(concatenating)e(the)g Fo(display)p
Fs(ed)581 9573 y(represen)-5 b(tations)56 b(of)g Fr(value)68
b Fs(.)28 b(.)g(.)g(.)581 9976 y Fo(\(concatenate-symbol)91
b('abc)c("-")h(4\))g Fs(=)-28 b Fj(\))87 b Fo('abc-4)3362
10511 y Fs(31)p eop end
%%Page: 32 40
TeXDict begin 32 39 bop 1478 1046 a Fl(5.2)269 b(Prett)-7
b(y-prin)g(ting)1478 1410 y Fs(These)55 b(are)h(in)f(the)g
Fo(pp)h Fs(structure.)1511 1661 y Fj(\017)83 b Fo(\(p)g
Fr(value)12 b Fo(\))1511 1860 y Fj(\017)83 b Fo(\(p)g
Fr(value)i(output-p)-8 b(ort)16 b Fo(\))1511 2059 y Fj(\017)83
b Fo(\(pretty-print)i Fr(value)f(output-p)-8 b(ort)84
b(p)-8 b(osition)13 b Fo(\))1478 2310 y Fs(Prett)-5 b(y-prin)g(t)89
b Fr(value)104 b Fs(The)89 b(curren)-5 b(t)90 b(output)g(p)5
b(ort)89 b(is)h(used)h(if)e(no)h(p)5 b(ort)90 b(is)g(sp)5
b(eci\014ed.)1478 2510 y Fr(Position)94 b Fs(is)83 b(the)e(starting)h
(o\013set.)154 b Fr(V)-13 b(alue)96 b Fs(will)82 b(b)5
b(e)82 b(prett)-5 b(y-prin)g(ted)82 b(to)g(the)f(righ)-5
b(t)83 b(of)1478 2709 y(this)56 b(column.)1478 3248 y
Fl(5.3)269 b(ASCI)7 b(I)92 b(c)-7 b(haracter)87 b(enco)7
b(ding)1478 3611 y Fs(These)55 b(are)h(in)f(the)g(structure)g
Fo(ascii)p Fs(.)1511 3862 y Fj(\017)83 b Fo(\(char->ascii)i
Fr(char)18 b Fo(\))83 b Fj(!)g Fr(inte)-8 b(ger)1511
4061 y Fj(\017)83 b Fo(\(ascii->char)i Fr(inte)-8 b(ger)18
b Fo(\))84 b Fj(!)f Fr(char)1478 4312 y Fs(These)47 b(are)f(iden)-5
b(tical)47 b(to)f Fo(char->integer)j Fs(and)e Fo(integer->char)i
Fs(except)d(that)g(they)g(use)1478 4512 y(the)55 b(ASCI)5
b(I)54 b(enco)5 b(ding)56 b(\(app)5 b(endix)55 b(A\).)1511
4763 y Fj(\017)83 b Fo(ascii-limit)4078 b Fs(in)-5 b(teger)1511
4962 y Fj(\017)83 b Fo(ascii-whitespaces)3024 b Fs(list)56
b(of)f(in)-5 b(tegers)1478 5213 y Fo(Ascii-limit)81 b
Fs(is)e(one)g(more)h(than)f(the)g(largest)g(v)-9 b(alue)78
b(that)h Fo(char->ascii)i Fs(ma)-5 b(y)79 b(re-)1478
5412 y(turn.)71 b Fo(Ascii-whitespaces)51 b Fs(is)e(a)f(list)g(of)g
(the)f(ASCI)5 b(I)47 b(v)-9 b(alues)48 b(of)g(whitespace)g(c)-5
b(haracters)1478 5611 y(\(space,)42 b(horizon)-5 b(tal)40
b(tab,)i(line)e(feed)e(\(=)h(newline\),)k(v)-5 b(ertical)38
b(tab,)k(form)e(feed,)i(and)d(carriage)1478 5811 y(return\).)1478
6350 y Fl(5.4)269 b(Bit)-7 b(wise)89 b(in)-7 b(teger)89
b(op)7 b(erations)1478 6713 y Fs(These)55 b(functions)g(use)h(the)e(t)
-5 b(w)g(o's-complemen)g(t)57 b(represen)-5 b(tation)55
b(for)g(in)-5 b(tegers.)74 b(There)55 b(is)1478 6912
y(no)47 b(limit)h(to)e(the)h(n)-5 b(um)g(b)5 b(er)49
b(of)e(bits)g(in)h(an)f(in)-5 b(teger.)71 b(They)47 b(are)g(in)h(the)f
(structures)g Fo(bitwise)1478 7112 y Fs(and)56 b Fo(big-scheme)p
Fs(.)1511 7363 y Fj(\017)83 b Fo(\(bitwise-and)i Fr(inte)-8
b(ger)84 b(inte)-8 b(ger)18 b Fo(\))84 b Fj(!)f Fr(inte)-8
b(ger)1511 7562 y Fj(\017)83 b Fo(\(bitwise-ior)i Fr(inte)-8
b(ger)84 b(inte)-8 b(ger)18 b Fo(\))84 b Fj(!)f Fr(inte)-8
b(ger)1511 7761 y Fj(\017)83 b Fo(\(bitwise-xor)i Fr(inte)-8
b(ger)84 b(inte)-8 b(ger)18 b Fo(\))84 b Fj(!)f Fr(inte)-8
b(ger)1511 7960 y Fj(\017)83 b Fo(\(bitwise-not)i Fr(inte)-8
b(ger)18 b Fo(\))84 b Fj(!)f Fr(inte)-8 b(ger)1478 8211
y Fs(These)49 b(p)5 b(erform)50 b(v)-9 b(arious)49 b(logical)h(op)5
b(erations)50 b(on)f(in)-5 b(tegers)50 b(on)g(a)f(bit-b)-5
b(y-bit)50 b(basis.)74 b(`)p Fo(ior)p Fs(')1478 8411
y(is)56 b(inclusiv)-5 b(e)56 b(OR)g(and)g(`)p Fo(xor)p
Fs(')g(is)g(exclusiv)-5 b(e)55 b(OR.)1511 8662 y Fj(\017)83
b Fo(\(arithmetic-shift)j Fr(inte)-8 b(ger)84 b(bit-c)-8
b(ount)16 b Fo(\))84 b Fj(!)f Fr(inte)-8 b(ger)1478 8913
y Fs(Shifts)52 b(the)f(in)-5 b(teger)51 b(b)-5 b(y)51
b(the)g(giv)-5 b(en)52 b(bit)f(coun)-5 b(t,)53 b(whic)-5
b(h)52 b(m)-5 b(ust)52 b(b)5 b(e)51 b(an)h(in)-5 b(teger,)52
b(shifting)g(left)1478 9112 y(for)58 b(p)5 b(ositiv)-5
b(e)59 b(coun)-5 b(ts)59 b(and)g(righ)-5 b(t)59 b(for)g(negativ)-5
b(e)58 b(ones.)84 b(Shifting)59 b(preserv)-5 b(es)59
b(the)g(in)-5 b(teger's)1478 9311 y(sign.)1511 9562 y
Fj(\017)83 b Fo(\(bit-count)i Fr(inte)-8 b(ger)18 b Fo(\))84
b Fj(!)f Fr(inte)-8 b(ger)1478 9813 y Fs(Coun)j(ts)75
b(the)f(n)-5 b(um)g(b)5 b(er)76 b(of)e(bits)h(set)f(in)g(the)g(in)-5
b(teger.)131 b(If)74 b(the)g(argumen)-5 b(t)75 b(is)g(negativ)-5
b(e)74 b(a)1478 10012 y(bit)-5 b(wise)56 b(NOT)f(op)5
b(eration)55 b(is)h(p)5 b(erformed)55 b(b)5 b(efore)55
b(coun)-5 b(ting.)4259 10511 y(32)p eop end
%%Page: 33 41
TeXDict begin 33 40 bop 581 1046 a Fl(5.5)270 b(Byte)89
b(v)-7 b(ectors)581 1460 y Fs(These)76 b(are)g(homogeneous)i(v)-5
b(ectors)75 b(of)h(small)h(in)-5 b(tegers)77 b(\(0)j
Fj(\024)h Fg(i)g Fj(\024)g Fs(255\).)135 b(The)76 b(func-)581
1659 y(tions)57 b(that)f(op)5 b(erate)55 b(on)i(them)f(are)h(analogous)
g(to)f(those)h(for)f(v)-5 b(ectors.)77 b(They)56 b(are)g(in)h(the)581
1858 y(structure)e Fo(byte-vectors)p Fs(.)614 2238 y
Fj(\017)83 b Fo(\(byte-vector?)103 b Fr(value)12 b Fo(\))84
b Fj(!)g Fr(b)-8 b(o)g(ole)g(an)614 2437 y Fj(\017)83
b Fo(\(make-byte-vector)j Fr(k)e(\014l)8 b(l)17 b Fo(\))85
b Fj(!)e Fr(byte-ve)-8 b(ctor)614 2636 y Fj(\017)83 b
Fo(\(byte-vector)i Fr(b)f(.)25 b(.)g(.)g Fo(\))103 b
Fj(!)83 b Fr(byte-ve)-8 b(ctor)614 2836 y Fj(\017)83
b Fo(\(byte-vector-length)k Fr(byte-ve)-8 b(ctor)18 b
Fo(\))84 b Fj(!)f Fr(inte)-8 b(ger)614 3035 y Fj(\017)83
b Fo(\(byte-vector-ref)j Fr(byte-ve)-8 b(ctor)85 b(k)18
b Fo(\))83 b Fj(!)g Fr(inte)-8 b(ger)614 3234 y Fj(\017)83
b Fo(\(byte-vector-set!)j Fr(byte-ve)-8 b(ctor)85 b(k)e(b)10
b Fo(\))581 3926 y Fl(5.6)270 b(Sparse)90 b(v)-7 b(ectors)581
4340 y Fs(These)75 b(are)f(v)-5 b(ectors)74 b(that)f(gro)-5
b(w)75 b(as)g(large)f(as)h(they)e(need)h(to.)131 b(That)74
b(is,)79 b(they)74 b(can)g(b)5 b(e)581 4539 y(indexed)67
b(b)-5 b(y)66 b(arbitrarily)h(large)f(nonnegativ)-5 b(e)67
b(in)-5 b(tegers.)108 b(The)66 b(implemen)-5 b(tation)68
b(allo)-5 b(ws)581 4738 y(for)70 b(arbitrarily)g(large)g(gaps)g(b)-5
b(y)71 b(arranging)f(the)g(en)-5 b(tries)70 b(in)h(a)f(tree.)116
b(They)70 b(are)g(in)g(the)581 4938 y(structure)55 b
Fo(sparse-vectors)p Fs(.)614 5317 y Fj(\017)83 b Fo
(\(make-sparse-vector\))k Fj(!)c Fr(sp)-8 b(arse-ve)g(ctor)614
5517 y Fj(\017)83 b Fo(\(sparse-vector-ref)k Fr(sp)-8
b(arse-ve)g(ctor)83 b(k)18 b Fo(\))84 b Fj(!)f Fr(value)614
5716 y Fj(\017)g Fo(\(sparse-vector-set!)k Fr(sp)-8 b(arse-ve)g(ctor)83
b(k)h(value)12 b Fo(\))614 5915 y Fj(\017)83 b Fo
(\(sparse-vector->list)k Fr(sp)-8 b(arse-ve)g(ctor)18
b Fo(\))83 b Fj(!)h Fr(list)581 6295 y Fo(Make-sparse-vector)p
Fs(,)44 b Fo(sparse-vector-ref)p Fs(,)g(and)37 b Fo(sparse-vector-set!)
71 b Fs(are)37 b(anal-)581 6494 y(ogous)86 b(to)e Fo(make-vector)p
Fs(,)94 b Fo(vector-ref)p Fs(,)g(and)85 b Fo(vector-set!)p
Fs(,)94 b(except)84 b(that)g(the)g(in-)581 6693 y(dices)78
b(passed)g(to)e Fo(sparse-vector-ref)k Fs(and)e Fo(sparse-vector-set!)
141 b Fs(can)77 b(b)5 b(e)77 b(arbi-)581 6892 y(trarily)60
b(large.)91 b(F)-14 b(or)61 b(indices)h(whose)f(elemen)-5
b(ts)61 b(ha)-5 b(v)g(e)62 b(not)e(b)5 b(een)61 b(set)f(in)i(a)e
(sparse)i(v)-5 b(ector,)581 7092 y Fo(sparse-vector-ref)58
b Fs(returns)e Fo(#f)p Fs(.)830 7318 y Fo(Sparse-vector->list)61
b Fs(is)d(for)f(debugging:)79 b(It)57 b(returns)h(a)f(list)h(of)f(the)g
(consecutiv)-5 b(e)581 7517 y(elemen)g(ts)71 b(in)g(a)g(sparse)h(v)-5
b(ector)70 b(from)h(0)f(to)h(the)f(highest)h(elemen)-5
b(t)71 b(that)f(has)h(b)5 b(een)71 b(set.)581 7716 y(Note)54
b(that)h(the)g(list)h(will)f(also)h(include)g(all)g(the)f
Fo(#f)h Fs(elemen)-5 b(ts)56 b(for)f(the)g(unset)g(elemen)-5
b(ts.)581 8408 y Fl(5.7)270 b(Cells)581 8822 y Fs(These)59
b(hold)h(a)e(single)i(v)-9 b(alue)58 b(and)i(are)e(useful)i(when)e(a)h
(simple)h(indirection)f(is)h(required.)581 9021 y(The)54
b(system)g(uses)h(these)e(to)g(hold)i(the)e(v)-9 b(alues)54
b(of)f(lexical)g(v)-9 b(ariables)54 b(that)f(ma)-5 b(y)55
b(b)5 b(e)53 b Fo(set!)p Fs(.)614 9401 y Fj(\017)83 b
Fo(\(cell?)101 b Fr(value)12 b Fo(\))85 b Fj(!)e Fr(b)-8
b(o)g(ole)g(an)614 9600 y Fj(\017)83 b Fo(\(make-cell)i
Fr(value)12 b Fo(\))85 b Fj(!)e Fr(c)-8 b(el)8 b(l)614
9799 y Fj(\017)83 b Fo(\(cell-ref)i Fr(c)-8 b(el)8 b(l)17
b Fo(\))85 b Fj(!)e Fr(value)614 9999 y Fj(\017)g Fo(\(cell-set!)i
Fr(c)-8 b(el)8 b(l)85 b(value)12 b Fo(\))3362 10511 y
Fs(33)p eop end
%%Page: 34 42
TeXDict begin 34 41 bop 1478 1046 a Fl(5.8)269 b(Queues)1478
1410 y Fs(These)69 b(are)g(ordinary)h(\014rst-in,)k(\014rst-out)69
b(queues.)116 b(The)69 b(pro)5 b(cedures)70 b(are)f(in)h(structure)1478
1609 y Fo(queues)p Fs(.)1511 1903 y Fj(\017)83 b Fo(\(make-queue\))i
Fj(!)e Fr(queue)1511 2102 y Fj(\017)g Fo(\(queue?)101
b Fr(value)12 b Fo(\))85 b Fj(!)e Fr(b)-8 b(o)g(ole)g(an)1511
2301 y Fj(\017)83 b Fo(\(queue-empty?)102 b Fr(queue)12
b Fo(\))85 b Fj(!)e Fr(b)-8 b(o)g(ole)g(an)1511 2500
y Fj(\017)83 b Fo(\(enqueue!)i Fr(queue)f(value)12 b
Fo(\))1511 2700 y Fj(\017)83 b Fo(\(dequeue!)102 b Fr(queue)12
b Fo(\))85 b Fj(!)e Fr(value)1478 2993 y Fo(Make-queue)i
Fs(creates)d(an)i(empt)-5 b(y)83 b(queue,)90 b Fo(queue?)158
b Fs(is)84 b(a)f(predicate)g(for)g(iden)-5 b(tifying)1478
3193 y(queues,)63 b Fo(queue-empty?)94 b Fs(tells)61
b(y)-5 b(ou)62 b(if)f(a)h(queue)f(is)h(empt)-5 b(y)-14
b(,)63 b Fo(enqueue!)93 b Fs(and)62 b Fo(dequeue!)1478
3392 y Fs(add)56 b(and)g(remo)-5 b(v)g(e)55 b(v)-9 b(alues.)1511
3686 y Fj(\017)83 b Fo(\(queue-length)i Fr(queue)12 b
Fo(\))85 b Fj(!)e Fr(inte)-8 b(ger)1511 3885 y Fj(\017)83
b Fo(\(queue->list)i Fr(queue)12 b Fo(\))85 b Fj(!)e
Fr(values)1511 4084 y Fj(\017)g Fo(\(list->queue)i Fr(values)14
b Fo(\))84 b Fj(!)f Fr(queue)1511 4283 y Fj(\017)g Fo
(\(delete-from-queue!)103 b Fr(queue)85 b(value)12 b
Fo(\))85 b Fj(!)e Fr(b)-8 b(o)g(ole)g(an)1478 4577 y
Fo(Queue-length)77 b Fs(returns)e(the)f(n)-5 b(um)g(b)5
b(er)76 b(of)f(v)-9 b(alues)74 b(in)h Fr(queue)14 b Fs(.)132
b Fo(Queue->list)77 b Fs(returns)1478 4776 y(the)j(v)-9
b(alues)81 b(in)g Fr(queue)95 b Fs(as)81 b(a)g(list,)87
b(in)81 b(the)f(order)h(in)g(whic)-5 b(h)82 b(the)e(v)-9
b(alues)81 b(w)-5 b(ere)81 b(added.)1478 4976 y Fo(List->queue)39
b Fs(returns)e(a)g(queue)f(con)-5 b(taining)38 b Fr(values)15
b Fs(,)41 b(preserving)c(their)g(order.)67 b Fo(Delete-from-queue)1478
5175 y Fs(remo)-5 b(v)g(es)79 b(the)f(\014rst)h(instance)f(of)g
Fr(value)92 b Fs(from)78 b Fo(queue)p Fs(,)85 b(using)d
Fo(eq?)143 b Fs(for)78 b(comparisons.)1478 5374 y Fo(Delete-from-queue)
58 b Fs(returns)e Fo(#t)g Fs(if)f Fr(value)69 b Fs(is)56
b(found)g(and)f Fo(#f)h Fs(if)f(it)g(is)h(not.)1478 5922
y Fl(5.9)269 b(Arra)-7 b(ys)1478 6286 y Fs(These)39 b(pro)-5
b(vide)40 b(N-dimensional,)k(zero-based)d(arra)-5 b(ys)40
b(and)f(are)g(in)h(the)f(structure)g Fo(arrays)p Fs(.)1478
6485 y(The)55 b(arra)-5 b(y)56 b(in)-5 b(terface)54 b(is)i(deriv)-5
b(ed)56 b(from)g(one)f(in)-5 b(v)g(en)g(ted)56 b(b)-5
b(y)56 b(Alan)f(Ba)-5 b(wden.)1511 6779 y Fj(\017)83
b Fo(\(make-array)i Fr(value)f(dimension)3909 6804 y
Fm(0)4067 6779 y Fr(.)25 b(.)g(.)g Fo(\))103 b Fj(!)83
b Fr(arr)-8 b(ay)1511 6978 y Fj(\017)83 b Fo(\(array)h
Fr(dimensions)f(element)3726 7003 y Fm(0)3886 6978 y
Fr(.)25 b(.)g(.)g Fo(\))103 b Fj(!)83 b Fr(arr)-8 b(ay)1511
7177 y Fj(\017)83 b Fo(\(copy-array)i Fr(arr)-8 b(ay)15
b Fo(\))82 b Fj(!)h Fr(arr)-8 b(ay)1478 7471 y Fo(Make-array)57
b Fs(mak)-5 b(es)56 b(a)f(new)h(arra)-5 b(y)55 b(with)g(the)g(giv)-5
b(en)56 b(dimensions,)h(eac)-5 b(h)56 b(of)f(whic)-5
b(h)56 b(m)-5 b(ust)1478 7670 y(b)5 b(e)43 b(a)g(non-negativ)-5
b(e)43 b(in)-5 b(teger.)70 b(Ev)-5 b(ery)43 b(elemen)-5
b(t)43 b(is)h(initially)f(set)g(to)g Fr(value)12 b Fs(.)72
b Fo(Array)44 b Fs(Returns)1478 7869 y(a)67 b(new)g(arra)-5
b(y)67 b(with)g(the)g(giv)-5 b(en)67 b(dimensions)i(and)f(elemen)-5
b(ts.)109 b Fr(Dimensions)81 b Fs(m)-5 b(ust)69 b(b)5
b(e)66 b(a)1478 8069 y(list)48 b(of)f(non-negativ)-5
b(e)48 b(in)-5 b(tegers,)49 b(The)f(n)-5 b(um)g(b)5 b(er)48
b(of)g(elemen)-5 b(ts)48 b(should)g(b)5 b(e)47 b(the)g(equal)h(to)f
(the)1478 8268 y(pro)5 b(duct)55 b(of)g(the)g(dimensions.)76
b(The)55 b(elemen)-5 b(ts)56 b(are)g(stored)f(in)h(ro)-5
b(w-ma)9 b(jor)56 b(order.)1478 8595 y Fo(\(make-array)89
b('a)e(2)h(3\))f Fj(!)g(f)p Fo(Array)i(2)e(3)p Fj(g)1478
8993 y Fo(\(array)h('\(2)g(3\))f('a)h('b)f('c)h('d)f('e)h('f\))1826
9193 y Fj(!)g(f)p Fo(Array)g(2)f(3)p Fj(g)1727 9520 y
Fo(Copy-array)55 b Fs(returns)f(a)g(cop)-5 b(y)54 b(of)66
b Fr(arr)-8 b(ay)15 b Fs(.)72 b(The)54 b(cop)-5 b(y)54
b(is)g(iden)-5 b(tical)54 b(to)g(the)f Fr(arr)-8 b(ay)67
b Fs(but)1478 9719 y(do)5 b(es)55 b(not)h(share)f(storage)h(with)f(it.)
1511 10012 y Fj(\017)83 b Fo(\(array?)101 b Fr(value)12
b Fo(\))85 b Fj(!)e Fr(b)-8 b(o)g(ole)g(an)4259 10511
y Fs(34)p eop end
%%Page: 35 43
TeXDict begin 35 42 bop 581 1046 a Fs(Returns)56 b Fo(#t)g
Fs(if)68 b Fr(value)h Fs(is)56 b(an)g(arra)-5 b(y)-14
b(.)614 1382 y Fj(\017)83 b Fo(\(array-ref)i Fr(arr)-8
b(ay)82 b(index)2582 1407 y Fm(0)2740 1382 y Fr(.)25
b(.)g(.)g Fo(\))103 b Fj(!)83 b Fr(value)614 1581 y Fj(\017)g
Fo(\(array-set!)i Fr(arr)-8 b(ay)82 b(value)i(index)3121
1606 y Fm(0)3279 1581 y Fr(.)25 b(.)g(.)g Fo(\))614 1780
y Fj(\017)83 b Fo(\(array->vector)j Fr(arr)-8 b(ay)15
b Fo(\))82 b Fj(!)h Fr(ve)-8 b(ctor)614 1979 y Fj(\017)83
b Fo(\(array-dimensions)j Fr(arr)-8 b(ay)15 b Fo(\))82
b Fj(!)h Fr(list)581 2315 y Fo(Array-ref)74 b Fs(returns)e(the)g(sp)5
b(eci\014ed)72 b(arra)-5 b(y)72 b(elemen)-5 b(t)73 b(and)f
Fo(array-set!)126 b Fs(replaces)72 b(the)581 2514 y(elemen)-5
b(t)56 b(with)f Fr(value)12 b Fs(.)581 2895 y Fo(\(let)88
b(\(\(a)g(\(array)g('\(2)g(3\))f('a)h('b)f('c)h('d)f('e)h('f\)\)\))755
3094 y(\(let)g(\(\(x)g(\(array-ref)h(a)e(0)h(1\)\)\))930
3293 y(\(array-set!)h(a)e('g)h(0)f(1\))930 3493 y(\(list)h(x)f
(\(array-ref)i(a)e(0)h(1\)\)\)\))930 3692 y Fj(!)f Fo('\(b)h(g\))830
4061 y(Array->vector)72 b Fs(returns)e(a)f(v)-5 b(ector)69
b(con)-5 b(taining)71 b(the)e(elemen)-5 b(ts)70 b(of)82
b Fr(arr)-8 b(ay)83 b Fs(in)70 b(ro)-5 b(w-)581 4260
y(ma)9 b(jor)56 b(order.)74 b Fo(Array-dimensions)58
b Fs(returns)e(the)f(dimensions)i(of)e(the)g(arra)-5
b(y)56 b(as)g(a)f(list.)614 4595 y Fj(\017)83 b Fo(\(make-shared-array)
k Fr(arr)-8 b(ay)81 b(line)-8 b(ar-map)84 b(dimension)4493
4620 y Fm(0)4651 4595 y Fr(.)25 b(.)g(.)g Fo(\))103 b
Fj(!)83 b Fr(arr)-8 b(ay)581 4931 y Fo(Make-shared-array)83
b Fs(mak)-5 b(es)81 b(a)f(new)g(arra)-5 b(y)80 b(that)g(shares)h
(storage)f(with)g Fr(arr)-8 b(ay)93 b Fs(and)581 5130
y(uses)57 b Fr(line)-8 b(ar-map)66 b Fs(to)55 b(map)h(indexes)g(to)e
(elemen)-5 b(ts.)75 b Fr(Line)-8 b(ar-map)66 b Fs(m)-5
b(ust)57 b(accept)d(as)i(man)-5 b(y)581 5329 y(argumen)g(ts)68
b(as)f(the)g(n)-5 b(um)g(b)5 b(er)68 b(of)79 b Fr(dimension)13
b Fs(s)67 b(giv)-5 b(en)67 b(and)g(m)-5 b(ust)68 b(return)f(a)f(list)h
(of)g(non-)581 5528 y(negativ)-5 b(e)55 b(in)-5 b(tegers)56
b(that)f(are)g(v)-9 b(alid)55 b(indexes)h(in)-5 b(to)56
b Fr(arr)-8 b(ay)15 b Fs(.)72 b(<)581 5909 y Fo(\(array-ref)89
b(\(make-shared-array)h(a)e(f)f(i0)h(i1)f(...\))1540
6109 y(j0)h(j1)f(...\))581 6477 y Fs(is)56 b(equiv)-9
b(alen)k(t)55 b(to)581 6858 y Fo(\(apply)88 b(array-ref)h(a)e(\(f)h(j0)
f(j1)h(...\)\))830 7227 y Fs(As)37 b(an)g(example,)k(the)c(follo)-5
b(wing)37 b(function)g(mak)-5 b(es)38 b(the)e(transp)5
b(ose)38 b(of)e(a)h(t)-5 b(w)g(o-dimensional)581 7426
y(arra)g(y:)581 7807 y Fo(\(define)89 b(\(transpose)f(array\))755
8006 y(\(let)g(\(\(dimensions)i(\(array-dimensions)g(array\)\)\))930
8205 y(\(make-shared-array)g(array)2586 8405 y(\(lambda)e(\(x)g(y\))
2760 8604 y(\(list)g(y)g(x\)\))2586 8803 y(\(cadr)g(dimensions\))2586
9002 y(\(car)g(dimensions\)\)\)\))581 9401 y(\(array->vector)755
9600 y(\(transpose)930 9799 y(\(array)g('\(2)g(3\))f('a)h('b)f('c)h('d)
f('e)h('f\)\)\))1104 9999 y Fj(!)f Fo('\(a)h(d)f(b)h(e)f(c)g(f\))3362
10511 y Fs(35)p eop end
%%Page: 36 44
TeXDict begin 36 43 bop 1478 1046 a Fl(5.10)270 b(Records)1478
1410 y Fs(New)57 b(t)-5 b(yp)5 b(es)57 b(can)h(b)5 b(e)57
b(constructed)g(using)i(the)e Fo(define-record-type)k
Fs(macro)d(from)g(the)1478 1609 y Fo(define-record-types)g
Fs(structure)e(The)f(general)g(syn)-5 b(tax)56 b(is:)1478
1878 y Fo(\(define-record-type)90 b Fr(tag)103 b(typ)-8
b(e-name)1652 2077 y Fo(\()p Fr(c)g(onstructor-name)101
b(\014eld-tag)j Fo(...\))1652 2277 y Fr(pr)-8 b(e)g(dic)g(ate-name)1652
2476 y Fo(\()p Fr(\014eld-tag)104 b(ac)-8 b(c)g(essor-name)100
b Fo([)p Fr(mo)-8 b(di\014er-name)12 b Fo(]\))1652 2675
y(...\))1478 2944 y Fs(This)56 b(mak)-5 b(es)56 b(the)f(follo)-5
b(wing)56 b(de\014nitions:)1511 3213 y Fj(\017)83 b Fr(typ)-8
b(e-name)4473 b Fs(t)-5 b(yp)5 b(e)1511 3413 y Fj(\017)83
b Fo(\()p Fr(c)-8 b(onstructor-name)97 b(\014eld-init)85
b(.)25 b(.)g(.)g Fo(\))103 b Fj(!)83 b Fr(typ)-8 b(e-name)1511
3612 y Fj(\017)83 b Fo(\()p Fr(pr)-8 b(e)g(dic)g(ate-name)96
b(value)12 b Fo(\))85 b Fj(!)e Fr(b)-8 b(o)g(ole)g(an)1511
3811 y Fj(\017)83 b Fo(\()p Fr(ac)-8 b(c)g(essor-name)96
b(typ)-8 b(e-name)12 b Fo(\))84 b Fj(!)f Fr(value)1511
4010 y Fj(\017)g Fo(\()p Fr(mo)-8 b(di\014er-name)96
b(typ)-8 b(e-name)84 b(value)12 b Fo(\))1478 4280 y Fr(T)-13
b(yp)-8 b(e-name)68 b Fs(is)57 b(the)e(record)g(t)-5
b(yp)5 b(e)55 b(itself,)h(and)g(can)g(b)5 b(e)56 b(used)g(to)f(sp)5
b(ecify)55 b(a)h(prin)-5 b(t)56 b(metho)5 b(d)1478 4479
y(\(see)80 b(b)5 b(elo)-5 b(w\).)151 b Fr(Constructor-name)95
b Fs(is)82 b(a)f(constructor)g(that)f(accepts)h(v)-9
b(alues)81 b(for)g(the)1478 4678 y(\014elds)46 b(whose)f(tags)g(are)g
(sp)5 b(eci\014ed.)71 b Fr(Pr)-8 b(e)g(dic)g(ate-name)58
b Fs(is)45 b(a)g(predicate)g(that)g(returns)g Fo(#t)h
Fs(for)1478 4877 y(elemen)-5 b(ts)43 b(of)f(the)g(t)-5
b(yp)5 b(e)42 b(and)h Fo(#f)g Fs(for)g(ev)-5 b(erything)42
b(else.)69 b(The)43 b Fr(ac)-8 b(c)g(essor-name)12 b
Fs(s)44 b(retriev)-5 b(e)42 b(the)1478 5077 y(v)-9 b(alues)59
b(of)f(\014elds,)i(and)f(the)g Fr(mo)-8 b(di\014er-name)12
b Fs('s)60 b(up)5 b(date)58 b(them.)84 b Fr(T)-13 b(ag)74
b Fs(is)59 b(used)g(in)g(prin)-5 b(ting)1478 5276 y(instances)57
b(of)g(the)f(record)h(t)-5 b(yp)5 b(e)56 b(and)h(the)f
Fr(\014eld-tag)15 b Fs(s)59 b(are)e(used)g(in)g(the)g(insp)5
b(ector)56 b(and)i(to)1478 5475 y(matc)-5 b(h)56 b(constructor)f
(argumen)-5 b(ts)56 b(with)f(\014elds.)1511 5711 y Fj(\017)83
b Fo(\(define-record-discloser)k Fr(typ)-8 b(e)83 b(discloser)18
b Fo(\))1478 5947 y(Define-record-discloser)77 b Fs(determines)d(ho)-5
b(w)74 b(records)f(of)h(t)-5 b(yp)5 b(e)72 b Fr(typ)-8
b(e)85 b Fs(are)74 b(prin)-5 b(ted.)1478 6146 y Fr(Discloser)97
b Fs(should)79 b(b)5 b(e)78 b(pro)5 b(cedure)78 b(whic)-5
b(h)79 b(tak)-5 b(es)78 b(a)g(single)h(record)f(of)g(t)-5
b(yp)5 b(e)78 b Fr(typ)-8 b(e)90 b Fs(and)1478 6346 y(returns)68
b(a)f(list)h(whose)f(car)h(is)g(a)f(sym)-5 b(b)5 b(ol.)111
b(The)67 b(record)g(will)h(b)5 b(e)67 b(prin)-5 b(ted)68
b(as)g(the)f(v)-9 b(alue)1478 6545 y(returned)55 b(b)-5
b(y)58 b Fr(discloser)74 b Fs(with)55 b(curly)g(braces)h(used)g
(instead)g(of)f(the)g(usual)i(paren)-5 b(thesis.)1727
6744 y(F)-14 b(or)56 b(example)1478 7013 y Fo(\(define-record-type)90
b(pare)e(:pare)1652 7212 y(\(kons)g(x)g(y\))1652 7412
y(pare?)1652 7611 y(\(x)g(kar)f(set-kar!\))1652 7810
y(\(y)h(kdr\)\))1478 8079 y Fs(de\014nes)56 b Fo(kons)h
Fs(to)e(b)5 b(e)56 b(a)f(constructor,)h Fo(kar)h Fs(and)f
Fo(kdr)g Fs(to)f(b)5 b(e)56 b(accessors,)h Fo(set-kar!)76
b Fs(to)56 b(b)5 b(e)1478 8279 y(a)68 b(mo)5 b(di\014er,)72
b(and)d Fo(pare?)114 b Fs(to)68 b(b)5 b(e)68 b(a)g(predicate)g(for)g(a)
h(new)f(t)-5 b(yp)5 b(e)67 b(of)h(ob)9 b(ject.)113 b(The)68
b(t)-5 b(yp)5 b(e)1478 8478 y(itself)55 b(is)h(named)g
Fo(:pare)p Fs(.)75 b Fo(Pare)56 b Fs(is)g(a)f(tag)g(used)h(in)g(prin)-5
b(ting)56 b(the)f(new)h(ob)9 b(jects.)1727 8677 y(By)72
b(default,)77 b(the)c(new)g(ob)9 b(jects)73 b(prin)-5
b(t)73 b(as)h Fo(#)p Fj(f)p Fo(Pare)p Fj(g)p Fs(.)127
b(The)73 b(prin)-5 b(t)74 b(metho)5 b(d)73 b(can)g(b)5
b(e)1478 8876 y(mo)g(di\014ed)56 b(using)j Fo(define-record-discloser)p
Fs(:)1478 9146 y Fo(\(define-record-discloser)91 b(:pare)1652
9345 y(\(lambda)e(\(p\))e(`\(pare)h(,\(kar)g(p\))g(,\(kdr)g(p\)\)\)\))
1478 9614 y Fs(will)55 b(cause)h(the)f(result)h(of)68
b Fo(\(kons)88 b(1)f(2\))56 b Fs(to)f(prin)-5 b(t)56
b(as)g Fo(#)p Fj(f)p Fo(Pare)88 b(1)f(2)p Fj(g)p Fs(.)1727
9813 y Fo(Define-record-resumer)56 b Fs(\(section)d(7.8.3\))g(can)g(b)5
b(e)52 b(used)i(to)e(con)-5 b(trol)53 b(ho)-5 b(w)54
b(records)1478 10012 y(are)h(stored)h(in)f(heap)h(images.)4259
10511 y(36)p eop end
%%Page: 37 45
TeXDict begin 37 44 bop 581 1046 a Ff(5.10.1)225 b(Lo)-6
b(w-lev)g(el)75 b(access)g(to)g(records)581 1378 y Fs(Records)59
b(are)g(implemen)-5 b(ted)59 b(using)h(primitiv)-5 b(e)59
b(ob)9 b(jects)58 b(exactly)f(analogous)j(to)e(v)-5 b(ectors.)581
1577 y(Ev)g(ery)54 b(record)h(has)g(a)g(record)f(t)-5
b(yp)5 b(e)54 b(\(whic)-5 b(h)55 b(is)g(another)g(record\))f(in)h(the)f
(\014rst)h(slot.)74 b(Note)581 1776 y(that)42 b(use)h(of)f(these)g(pro)
5 b(cedures,)45 b(esp)5 b(ecially)45 b Fo(record-set!)p
Fs(,)i(breaks)42 b(the)g(record)g(abstrac-)581 1975 y(tion)55
b(describ)5 b(ed)56 b(ab)5 b(o)-5 b(v)g(e;)56 b(caution)f(is)h
(advised.)830 2188 y(These)g(pro)5 b(cedures)56 b(are)f(in)g(the)g
(structure)h Fo(records)p Fs(.)614 2527 y Fj(\017)83
b Fo(\(make-record)i Fr(n)f(value)12 b Fo(\))85 b Fj(!)e
Fr(r)-8 b(e)g(c)g(or)g(d)614 2726 y Fj(\017)83 b Fo(\(record)i
Fr(value)f(.)25 b(.)g(.)g Fo(\))103 b Fj(!)83 b Fr(r)-8
b(e)g(c)g(or)g(d-ve)g(ctor)614 2926 y Fj(\017)83 b Fo(\(record?)102
b Fr(value)12 b Fo(\))85 b Fj(!)e Fr(b)-8 b(o)g(ole)g(an)614
3125 y Fj(\017)83 b Fo(\(record-length)j Fr(r)-8 b(e)g(c)g(or)g(d)17
b Fo(\))82 b Fj(!)h Fr(inte)-8 b(ger)614 3324 y Fj(\017)83
b Fo(\(record-type)i Fr(r)-8 b(e)g(c)g(or)g(d)17 b Fo(\))82
b Fj(!)h Fr(value)614 3523 y Fj(\017)g Fo(\(record-ref)i
Fr(r)-8 b(e)g(c)g(or)g(d)82 b(i)17 b Fo(\))83 b Fj(!)g
Fr(value)614 3723 y Fj(\017)g Fo(\(record-set!)i Fr(r)-8
b(e)g(c)g(or)g(d)82 b(i)h(value)12 b Fo(\))581 4062 y
Fs(These)62 b(the)f(same)h(as)g(the)f(standard)h Fo(vector-)g
Fs(pro)5 b(cedures)62 b(except)e(that)h(they)g(op)5 b(erate)581
4261 y(on)49 b(records.)73 b(The)49 b(v)-9 b(alue)48
b(returned)h(b)-5 b(y)52 b Fo(record-length)f Fs(includes)f(the)f(slot)
g(holding)h(the)581 4460 y(record's)56 b(t)-5 b(yp)5
b(e.)73 b Fo(\(record-type)89 b Fr(x)20 b Fo(\))56 b
Fs(is)g(equiv)-9 b(alen)k(t)55 b(to)g Fo(\(record-ref)89
b Fr(x)107 b Fo(0\))p Fs(.)581 4996 y Ff(5.10.2)225 b(Record)74
b(t)-6 b(yp)6 b(es)581 5328 y Fs(Record)37 b(t)-5 b(yp)5
b(es)37 b(are)g(themselv)-5 b(es)37 b(records)h(of)e(a)h(particular)g
(t)-5 b(yp)5 b(e)36 b(\(the)g(\014rst)i(slot)f(of)49
b Fo(:record-type)581 5527 y Fs(p)5 b(oin)-5 b(ts)69
b(to)f(itself)13 b(\).)112 b(A)68 b(record)g(t)-5 b(yp)5
b(e)68 b(con)-5 b(tains)69 b(four)f(v)-9 b(alues:)100
b(the)68 b(name)h(of)f(the)g(record)581 5726 y(t)-5 b(yp)5
b(e,)61 b(a)f(list)g(of)g(the)g(names)h(its)f(\014elds,)j(and)d(pro)5
b(cedures)61 b(for)f(disclosing)i(and)e(resuming)581
5926 y(records)72 b(of)e(that)h(t)-5 b(yp)5 b(e.)120
b(Pro)5 b(cedures)71 b(for)g(manipulating)h(them)f(are)g(in)g(the)g
(structure)581 6125 y Fo(record-types)p Fs(.)614 6464
y Fj(\017)83 b Fo(\(make-record-type)j Fr(name)e(\014eld-names)14
b Fo(\))84 b Fj(!)f Fr(r)-8 b(e)g(c)g(or)g(d-typ)g(e)614
6663 y Fj(\017)83 b Fo(\(record-type?)103 b Fr(value)12
b Fo(\))84 b Fj(!)g Fr(b)-8 b(o)g(ole)g(an)614 6863 y
Fj(\017)83 b Fo(\(record-type-name)j Fr(r)-8 b(e)g(c)g(or)g(d-typ)g(e)
12 b Fo(\))83 b Fj(!)g Fr(symb)-8 b(ol)614 7062 y Fj(\017)83
b Fo(\(record-type-field-names)88 b Fr(r)-8 b(e)g(c)g(or)g(d-typ)g(e)12
b Fo(\))82 b Fj(!)h Fr(symb)-8 b(ols)614 7541 y Fj(\017)83
b Fo(\(record-constructor)k Fr(r)-8 b(e)g(c)g(or)g(d-typ)g(e)81
b(\014eld-names)14 b Fo(\))85 b Fj(!)e Fr(pr)-8 b(o)g(c)g(e)g(dur)g(e)
614 7740 y Fj(\017)83 b Fo(\(record-predicate)j Fr(r)-8
b(e)g(c)g(or)g(d-typ)g(e)12 b Fo(\))83 b Fj(!)g Fr(pr)-8
b(o)g(c)g(e)g(dur)g(e)614 7939 y Fj(\017)83 b Fo(\(record-accessor)j
Fr(r)-8 b(e)g(c)g(or)g(d-typ)g(e)82 b(\014eld-name)12
b Fo(\))85 b Fj(!)e Fr(pr)-8 b(o)g(c)g(e)g(dur)g(e)614
8139 y Fj(\017)83 b Fo(\(record-modifier)j Fr(r)-8 b(e)g(c)g(or)g
(d-typ)g(e)82 b(\014eld-name)12 b Fo(\))85 b Fj(!)e Fr(pr)-8
b(o)g(c)g(e)g(dur)g(e)581 8478 y Fs(These)37 b(pro)5
b(cedures)38 b(construct)e(the)h(usual)h(record-manipulating)g(pro)5
b(cedures.)68 b Fo(Record-constructor)581 8677 y Fs(returns)50
b(a)f(constructor)g(that)g(is)h(passed)g(the)f(initial)h(v)-9
b(alues)49 b(for)g(the)g(\014elds)i(sp)5 b(eci\014ed)49
b(and)581 8876 y(returns)61 b(a)f(new)g(record.)88 b
Fo(Record-predicate)62 b Fs(returns)f(a)f(predicate)g(that)f(return)h
(true)581 9076 y(when)46 b(passed)g(a)f(record)g(of)g(t)-5
b(yp)5 b(e)44 b Fr(r)-8 b(e)g(c)g(or)g(d-typ)g(e)57 b
Fs(and)45 b(false)h(otherwise.)70 b Fo(Record-accessor)581
9275 y Fs(and)59 b Fo(record-modifier)j Fs(return)d(pro)5
b(cedures)59 b(that)f(reference)g(and)h(set)g(the)f(giv)-5
b(en)59 b(\014eld)581 9474 y(in)d(records)g(of)f(the)g(approriate)g(t)
-5 b(yp)5 b(e.)614 9813 y Fj(\017)83 b Fo(\(define-record-discloser)88
b Fr(r)-8 b(e)g(c)g(or)g(d-typ)g(e)81 b(discloser)18
b Fo(\))614 10012 y Fj(\017)83 b Fo(\(define-record-resumer)k
Fr(r)-8 b(e)g(c)g(or)g(d-typ)g(e)82 b(r)-8 b(esumer)18
b Fo(\))3362 10511 y Fs(37)p eop end
%%Page: 38 46
TeXDict begin 38 45 bop 1478 1046 a Fo(Record-types)39
b Fs(is)e(the)g(initial)g(exp)5 b(orter)36 b(of)50 b
Fo(define-record-discloser)41 b Fs(\(re-exp)5 b(orted)1478
1245 y(b)-5 b(y)65 b Fo(define-record-types)i Fs(describ)5
b(ed)63 b(ab)5 b(o)-5 b(v)g(e\))63 b(and)h Fo(define-record-resumer)j
Fs(\(re-)1478 1445 y(exp)5 b(orted)54 b(b)-5 b(y)58 b
Fo(external-calls)g Fs(\(section)d(7.8.3\)\).)1727 1644
y(The)60 b(pro)5 b(cedures)60 b(describ)5 b(ed)60 b(in)g(this)g
(section)g(can)g(b)5 b(e)59 b(used)i(to)e(de\014ne)h(new)g(record-)1478
1843 y(t)-5 b(yp)5 b(e-de\014ning)56 b(macros.)1478 2168
y Fo(\(define-record-type)90 b(pare)e(:pare)1652 2368
y(\(kons)g(x)g(y\))1652 2567 y(pare?)1652 2766 y(\(x)g(kar)f
(set-kar!\))1652 2965 y(\(y)h(kdr\)\))1478 3291 y Fs(is)56
b(\(sematically\))e(equiv)-9 b(alen)k(t)55 b(to)1478
3616 y Fo(\(define)88 b(:pare)g(\(make-record-type)i('pare)e('\(x)g
(y\)\)\))1478 3815 y(\(define)g(kons)g(\(record-constructor)i(:pare)f
('\(x)e(y\)\)\))1478 4014 y(\(define)h(kar)g(\(record-accessor)i(:pare)
e('x\)\))1478 4214 y(\(define)g(set-kar!)h(\(record-modifier)h(:pare)e
('x\)\))1478 4413 y(\(define)g(kdr)g(\(record-accessor)i(:pare)e
('y\)\))1727 4738 y Fs(The)63 b(\\\(seman)-5 b(tically\)")63
b(ab)5 b(o)-5 b(v)g(e)63 b(is)h(b)5 b(ecause)63 b Fo
(define-record-type)k Fs(adds)d(declara-)1478 4937 y(tions,)50
b(whic)-5 b(h)50 b(allo)-5 b(ws)50 b(the)e(t)-5 b(yp)5
b(e)48 b(c)-5 b(hec)g(k)g(er)49 b(to)f(detect)g(some)h(misuses)i(of)d
(records,)j(and)e(uses)1478 5137 y(more)j(e\016cien)-5
b(t)52 b(de\014nitions)h(for)f(the)f(constructor,)i(accessors,)g(and)g
(mo)5 b(di\014ers.)74 b(Ignoring)1478 5336 y(the)43 b(declarations,)j
(whic)-5 b(h)44 b(will)g(ha)-5 b(v)g(e)44 b(to)f(w)-5
b(ait)44 b(for)f(another)g(edition)h(of)f(the)g(man)-5
b(ual,)48 b(what)1478 5535 y(the)55 b(ab)5 b(o)-5 b(v)g(e)55
b(example)h(actually)e(expands)i(in)-5 b(to)56 b(is:)1478
5860 y Fo(\(define)88 b(:pare)g(\(make-record-type)i('pare)e('\(x)g
(y\)\)\))1478 6060 y(\(define)g(\(kons)g(x)g(y\))f(\(record)h(:pare)g
(x)g(y\)\))1478 6259 y(\(define)g(\(kar)g(r\))g(\(checked-record-ref)i
(r)d(:pare)h(1\)\))1478 6458 y(\(define)g(\(set-kar!)h(r)e(new\))1652
6657 y(\(checked-record-set!)k(r)c(:pare)h(1)f(new\)\))1478
6857 y(\(define)h(\(kdr)g(r\))g(\(checked-record-ref)i(r)d(:pare)h
(2\)\))1478 7182 y(Checked-record-ref)50 b Fs(and)d Fo
(Checked-record-set!)74 b Fs(are)47 b(lo)-5 b(w-lev)g(el)48
b(pro)5 b(cedures)47 b(that)1478 7381 y(c)-5 b(hec)g(k)54
b(the)f(t)-5 b(yp)5 b(e)53 b(of)g(the)h(record)f(and)h(access)g(or)g
(mo)5 b(dify)54 b(it)f(using)i(a)f(single)g(VM)f(instruc-)1478
7580 y(tion.)1478 8128 y Fl(5.11)270 b(Finite)89 b(record)h(t)-7
b(yp)7 b(es)1478 8492 y Fs(The)61 b(structure)h Fo(finite-types)i
Fs(has)e(t)-5 b(w)g(o)62 b(macros)h(for)e(de\014ning)i(`\014nite')f
(record)f(t)-5 b(yp)5 b(es.)1478 8691 y(These)65 b(are)g(record)g(t)-5
b(yp)5 b(es)64 b(for)h(whic)-5 b(h)65 b(there)g(are)g(a)f(\014xed)h(n)
-5 b(um)g(b)5 b(er)67 b(of)d(instances,)k(all)e(of)1478
8890 y(whic)-5 b(h)68 b(are)g(created)f(at)h(the)g(same)g(time)g(as)g
(the)g(record)g(t)-5 b(yp)5 b(e)67 b(itself.)112 b(The)68
b(syn)-5 b(tax)68 b(for)1478 9089 y(de\014ning)56 b(an)g(en)-5
b(umerated)56 b(t)-5 b(yp)5 b(e)54 b(is:)1478 9415 y
Fo(\(define-enumerated-type)91 b Fr(tag)102 b(typ)-8
b(e-name)1652 9614 y(pr)g(e)g(dic)g(ate-name)1652 9813
y(ve)g(ctor-of-instanc)g(es-name)1652 10012 y(name-ac)g(c)g(essor)4259
10511 y Fs(38)p eop end
%%Page: 39 47
TeXDict begin 39 46 bop 755 1046 a Fr(index-ac)-8 b(c)g(essor)755
1245 y Fo(\()p Fr(instanc)g(e-name)102 b Fo(...\)\))581
1563 y Fs(This)67 b(de\014nes)h(a)e(new)g(record)h(t)-5
b(yp)5 b(e,)68 b(b)5 b(ound)67 b(to)f Fr(typ)-8 b(e-name)12
b Fs(,)71 b(with)66 b(as)h(man)-5 b(y)67 b(instances)581
1762 y(as)72 b(there)g(are)f Fr(instanc)-8 b(e-name)12
b Fs('s.)126 b Fr(V)-13 b(e)-8 b(ctor-of-instanc)g(es-name)88
b Fs(is)72 b(b)5 b(ound)72 b(to)g(a)f(v)-5 b(ector)581
1961 y(con)g(taining)74 b(the)f(instances)h(of)f(the)g(t)-5
b(yp)5 b(e)73 b(in)g(the)g(same)h(order)f(as)h(the)f
Fr(instanc)-8 b(e-name)581 2160 y Fs(list.)155 b Fr(T)-13
b(ag)98 b Fs(is)83 b(b)5 b(ound)83 b(to)f(a)g(macro)h(that)f(when)g
(giv)-5 b(en)83 b(an)g Fr(instanc)-8 b(e-name)96 b Fs(expands)581
2360 y(in)-5 b(to)73 b(an)g(expression)h(that)e(returns)h(corresp)5
b(onding)74 b(instance.)126 b(The)73 b(name)g(lo)5 b(okup)73
b(is)581 2559 y(done)53 b(at)f(macro)g(expansion)h(time.)73
b Fr(Pr)-8 b(e)g(dic)g(ate-name)65 b Fs(is)53 b(a)f(predicate)g(for)g
(the)g(new)g(t)-5 b(yp)5 b(e.)581 2758 y Fr(Name-ac)-8
b(c)g(essor)96 b Fs(and)79 b Fr(index-ac)-8 b(c)g(essor)96
b Fs(are)78 b(accessors)g(for)g(the)f(name)i(and)f(index)g(\(in)581
2957 y Fr(ve)-8 b(ctor-of-instanc)g(es)14 b Fs(\))57
b(of)e(instances)h(of)f(the)g(t)-5 b(yp)5 b(e.)581 3304
y Fo(\(define-enumerated-type)91 b(color)d(:color)755
3504 y(color?)755 3703 y(colors)755 3902 y(color-name)755
4101 y(color-index)755 4301 y(\(black)h(white)f(purple)g(maroon\)\))581
4699 y(\(color-name)h(\(vector-ref)g(colors)f(0\)\))g
Fj(!)f Fo(black)581 4898 y(\(color-name)i(\(color)f(white\)\))786
b Fj(!)87 b Fo(white)581 5098 y(\(color-index)i(\(color)g(purple\)\))
611 b Fj(!)87 b Fo(2)830 5444 y Fs(Finite)52 b(t)-5 b(yp)5
b(es)52 b(are)f(en)-5 b(umerations)53 b(that)e(allo)-5
b(w)52 b(the)g(user)g(to)f(add)h(additional)h(\014elds)f(in)581
5644 y(the)j(t)-5 b(yp)5 b(e.)73 b(The)56 b(syn)-5 b(tax)55
b(for)g(de\014ning)h(a)g(\014nite)f(t)-5 b(yp)5 b(e)55
b(is:)581 5961 y Fo(\(define-finite-type)91 b Fr(tag)102
b(typ)-8 b(e-name)755 6160 y Fo(\()p Fr(\014eld-tag)104
b Fo(...\))755 6359 y Fr(pr)-8 b(e)g(dic)g(ate-name)755
6559 y(ve)g(ctor-of-instanc)g(es-name)755 6758 y(name-ac)g(c)g(essor)
755 6957 y(index-ac)g(c)g(essor)755 7156 y Fo(\()p Fr(\014eld-tag)104
b(ac)-8 b(c)g(essor-name)101 b Fo([)p Fr(mo)-8 b(di\014er-name)12
b Fo(]\))755 7356 y(...)755 7555 y(\(\()p Fr(instanc)-8
b(e-name)102 b(\014eld-value)g Fo(...\))843 7754 y(...\)\))581
8072 y Fs(The)65 b(additional)g(\014elds)h(are)e(sp)5
b(eci\014ed)65 b(exactly)e(as)i(with)g Fo(define-record-type)p
Fs(.)105 b(The)581 8271 y(\014eld)60 b(argumen)-5 b(ts)60
b(to)e(the)h(constructor)g(are)g(listed)g(after)f(the)h
Fr(typ)-8 b(e-name)12 b Fs(;)62 b(these)d(do)g(not)581
8470 y(include)78 b(the)f(name)h(and)f(index)h(\014elds.)140
b(The)78 b(form)f(ends)h(with)f(the)g(names)h(and)g(the)581
8669 y(initial)42 b(\014eld)g(v)-9 b(alues)41 b(for)g(the)g(instances)h
(of)f(the)g(t)-5 b(yp)5 b(e.)69 b(The)41 b(instances)h(are)f
(constructed)g(b)-5 b(y)581 8869 y(applying)44 b(the)e(\(unnamed\))h
(constructor)g(to)f(these)h(initial)g(\014eld)h(v)-9
b(alues.)69 b(The)43 b(name)h(m)-5 b(ust)581 9068 y(b)5
b(e)52 b(\014rst)g(and)g(the)g(remaining)h(v)-9 b(alues)52
b(m)-5 b(ust)53 b(matc)-5 b(h)52 b(the)g Fr(\014eld-tag)15
b Fs(s)53 b(in)g(the)e(constructor's)581 9267 y(argumen)-5
b(t)56 b(list.)581 9614 y Fo(\(define-finite-type)91
b(color)d(:color)755 9813 y(\(red)g(green)g(blue\))755
10012 y(color?)3362 10511 y Fs(39)p eop end
%%Page: 40 48
TeXDict begin 40 47 bop 1652 1046 a Fo(colors)1652 1245
y(color-name)1652 1445 y(color-index)1652 1644 y(\(red)262
b(color-red\))1652 1843 y(\(green)88 b(color-green\))1652
2042 y(\(blue)175 b(color-blue\))1652 2242 y(\(\(black)350
b(0)262 b(0)f(0\))1739 2441 y(\(white)176 b(255)87 b(255)h(255\))1739
2640 y(\(purple)h(160)175 b(32)87 b(240\))1739 2839 y(\(maroon)i(176)
175 b(48)f(96\)\)\))1478 3238 y(\(color-name)89 b(\(color)f(black\)\))
786 b Fj(!)87 b Fo(black)1478 3437 y(\(color-name)i(\(vector-ref)g
(colors)f(1\)\))g Fj(!)f Fo(white)1478 3636 y(\(color-index)i(\(color)f
(purple\)\))612 b Fj(!)87 b Fo(2)1478 3836 y(\(color-red)i(\(color)f
(maroon\)\))786 b Fj(!)87 b Fo(176)1478 4419 y Fl(5.12)270
b(Sets)90 b(o)-7 b(v)g(er)88 b(\014nite)i(t)-7 b(yp)7
b(es)1478 4795 y Fs(The)71 b(structure)g Fo(enum-sets)i
Fs(has)f(a)f(macro)g(for)g(de\014ning)h(t)-5 b(yp)5 b(es)71
b(for)g(sets)h(of)f(elemen)-5 b(ts)1478 4994 y(of)87
b(\014nite)g(t)-5 b(yp)5 b(es.)170 b(These)88 b(w)-5
b(ork)87 b(naturally)g(with)h(the)f(\014nite)g(t)-5 b(yp)5
b(es)87 b(de\014ned)h(b)-5 b(y)88 b(the)1478 5193 y Fo(finite-types)78
b Fs(structure,)i(but)c(are)f(not)h(tied)f(to)h(them.)135
b(The)75 b(syn)-5 b(tax)76 b(for)f(de\014ning)1478 5393
y(suc)-5 b(h)56 b(a)g(t)-5 b(yp)5 b(e)54 b(is:)1478 5790
y Fo(\(define-enum-set-type)91 b Fr(id)104 b(typ)-8 b(e-name)100
b(pr)-8 b(e)g(dic)g(ate)99 b(c)-8 b(onstructor)1739 5989
y(element-syntax)110 b(element-pr)-8 b(e)g(dic)g(ate)101
b(al)8 b(l-elements)104 b(element-index-r)-8 b(ef)38
b Fo(\))1478 6381 y Fs(This)79 b(de\014nes)h Fr(id)96
b Fs(to)79 b(b)5 b(e)78 b(syn)-5 b(tax)79 b(for)g(constructing)g(sets,)
85 b Fr(typ)-8 b(e-name)92 b Fs(to)78 b(b)5 b(e)79 b(a)g(v)-9
b(alue)1478 6580 y(represen)k(ting)47 b(the)f(t)-5 b(yp)5
b(e,)48 b Fr(pr)-8 b(e)g(dic)g(ate)58 b Fs(to)47 b(b)5
b(e)46 b(a)g(predicate)h(for)f(those)h(sets,)i(and)e
Fr(c)-8 b(onstructor)1478 6779 y Fs(a)55 b(pro)5 b(cedure)55
b(for)g(constructing)h(one)f(from)h(a)f(list.)1727 6985
y Fr(Element-syntax)78 b Fs(m)-5 b(ust)57 b(b)5 b(e)57
b(the)f(name)h(of)f(a)h(macro)f(for)h(constructing)f(set)h(elemen)-5
b(ts)1478 7184 y(from)46 b(names)h(\(akin)f(to)g(the)g
Fr(tag)61 b Fs(argumen)-5 b(t)47 b(to)f Fo(define-enumerated-type)p
Fs(\).)74 b Fr(Element-)1478 7383 y(pr)-8 b(e)g(dic)g(ate)69
b Fs(m)-5 b(ust)58 b(b)5 b(e)57 b(a)h(predicate)e(for)h(the)g(elemen)-5
b(t)58 b(t)-5 b(yp)5 b(e,)57 b Fr(al)8 b(l-elements)74
b Fs(a)57 b(v)-5 b(ector)57 b(of)g(all)1478 7583 y(v)-9
b(alues)59 b(of)g(the)g(elemen)-5 b(t)60 b(t)-5 b(yp)5
b(e,)59 b(and)h Fr(element-index-r)-8 b(ef)98 b Fs(m)-5
b(ust)60 b(return)g(the)f(index)g(of)g(an)1478 7782 y(elemen)-5
b(t)55 b(within)h(the)f Fr(al)8 b(l-elements)72 b Fs(v)-5
b(ector.)1511 8100 y Fj(\017)83 b Fo(\(enum-set->list)j
Fr(enum-set)16 b Fo(\))84 b Fj(!)f Fr(list)1511 8299
y Fj(\017)g Fo(\(enum-set-member?)103 b Fr(enum-set)84
b(enumer)-8 b(and)17 b Fo(\))84 b Fj(!)g Fr(b)-8 b(o)g(ole)g(an)1511
8499 y Fj(\017)83 b Fo(\(enum-set=?)102 b Fr(enum-set)84
b(enum-set)16 b Fo(\))85 b Fj(!)e Fr(b)-8 b(o)g(ole)g(an)1511
8698 y Fj(\017)83 b Fo(\(enum-set-union)j Fr(enum-set)e(enum-set)16
b Fo(\))85 b Fj(!)e Fr(enum-set)1511 8897 y Fj(\017)g
Fo(\(enum-set-intersection)k Fr(enum-set)d(enum-set)16
b Fo(\))85 b Fj(!)166 b Fr(enum-set)1511 9096 y Fj(\017)83
b Fo(\(enum-set-negation)j Fr(enum-set)16 b Fo(\))85
b Fj(!)e Fr(enum-set)1478 9415 y Fo(Enum-set->list)65
b Fs(con)-5 b(v)g(erts)64 b(a)f(set)f(in)-5 b(to)64 b(a)f(list)g(of)g
(its)g(elemen)-5 b(ts.)98 b Fo(Enum-set-member?)1478
9614 y Fs(tests)72 b(for)g(mem)-5 b(b)5 b(ership.)125
b Fo(Enum-set=?)h Fs(tests)72 b(t)-5 b(w)g(o)72 b(sets)h(of)e(equal)h
(t)-5 b(yp)5 b(e)72 b(for)f(equalit)-5 b(y)-14 b(.)1478
9813 y(\(If)65 b(its)g(argumen)-5 b(ts)67 b(are)f(not)f(of)h(the)f
(same)h(t)-5 b(yp)5 b(e,)68 b Fo(enum-set=?)106 b Fs(raises)66
b(an)g(exception.\))1478 10012 y Fo(Enum-set-union)39
b Fs(computes)f(the)e(union)i(of)f(t)-5 b(w)g(o)37 b(sets)g(of)g(equal)
f(t)-5 b(yp)5 b(e,)40 b Fo(enum-set-intersection)4259
10511 y Fs(40)p eop end
%%Page: 41 49
TeXDict begin 41 48 bop 581 1046 a Fs(computes)57 b(the)g(in)-5
b(tersection,)57 b(and)g Fo(enum-set-negation)j Fs(computes)d(the)f
(complemen)-5 b(t)581 1245 y(of)55 b(a)h(set.)830 1445
y(Here)f(is)h(an)f(example.)74 b(Giv)-5 b(en)56 b(an)g(en)-5
b(umerated)56 b(t)-5 b(yp)5 b(e:)581 1813 y Fo
(\(define-enumerated-type)91 b(color)d(:color)755 2012
y(color?)755 2211 y(colors)755 2411 y(color-name)755
2610 y(color-index)755 2809 y(\(red)g(blue)g(green\)\))830
3177 y Fs(w)-5 b(e)56 b(can)f(de\014ne)h(sets)f(of)h(colors:)581
3544 y Fo(\(define-enum-set-type)91 b(color-set)e(:color-set)2499
3744 y(color-set?)2499 3943 y(make-color-set)755 4142
y(color)g(color?)f(colors)g(color-index\))581 4510 y(>)f
(\(enum-set->list)j(\(color-set)f(red)f(blue\)\))581
4709 y(\(#Color)h(red)e(#Color)h(blue\))581 4908 y(>)f
(\(enum-set->list)j(\(enum-set-negation)h(\(color-set)d(red)g
(blue\)\)\))581 5107 y(\(#Color)h(green\))581 5307 y(>)e
(\(enum-set-member?)k(\(color-set)d(red)g(blue\))g(\(color)g(blue\)\))
581 5506 y(#t)581 6058 y Fl(5.13)270 b(Hash)91 b(tables)581
6422 y Fs(These)41 b(are)f(generic)g(hash)i(tables,)i(and)d(are)f(in)h
(the)f(structure)g Fo(tables)p Fs(.)70 b(Strictly)39
b(sp)5 b(eaking)581 6622 y(they)64 b(are)g(more)h(maps)h(than)e
(tables,)j(as)e(ev)-5 b(ery)64 b(table)h(has)g(a)f(v)-9
b(alue)64 b(for)h(ev)-5 b(ery)64 b(p)5 b(ossible)581
6821 y(k)-5 b(ey)55 b(\(for)g(that)f(t)-5 b(yp)5 b(e)55
b(of)g(table\).)73 b(All)56 b(but)f(a)g(\014nite)h(n)-5
b(um)g(b)5 b(er)56 b(of)f(those)h(v)-9 b(alues)55 b(are)h
Fo(#f)p Fs(.)614 7121 y Fj(\017)83 b Fo(\(make-table\))i
Fj(!)f Fr(table)614 7320 y Fj(\017)f Fo(\(make-symbol-table\))k
Fj(!)c Fr(symb)-8 b(ol-table)614 7520 y Fj(\017)83 b
Fo(\(make-string-table\))k Fj(!)c Fr(string-table)614
7719 y Fj(\017)g Fo(\(make-integer-table\))k Fj(!)c Fr(inte)-8
b(ger-table)614 7918 y Fj(\017)83 b Fo(\(make-table-maker)j
Fr(c)-8 b(omp)g(ar)g(e-pr)g(o)g(c)82 b(hash-pr)-8 b(o)g(c)9
b Fo(\))82 b Fj(!)h Fr(pr)-8 b(o)g(c)g(e)g(dur)g(e)614
8117 y Fj(\017)83 b Fo(\(make-table-immutable!)k Fr(table)12
b Fo(\))581 8418 y Fs(The)74 b(\014rst)g(four)g(functions)h(listed)f
(mak)-5 b(e)74 b(v)-9 b(arious)74 b(kinds)h(of)f(tables.)130
b Fo(Make-table)75 b Fs(re-)581 8617 y(turns)58 b(a)f(table)g(whose)h
(k)-5 b(eys)57 b(ma)-5 b(y)57 b(b)5 b(e)57 b(sym)-5 b(b)5
b(ols,)59 b(in)-5 b(teger,)58 b(c)-5 b(haracters,)58
b(b)5 b(o)g(oleans,)58 b(or)f(the)581 8816 y(empt)-5
b(y)52 b(list)h(\(these)e(are)h(also)h(the)e(v)-9 b(alues)52
b(that)g(ma)-5 b(y)52 b(b)5 b(e)52 b(used)h(in)f Fo(case)h
Fs(expressions\).)74 b(As)581 9016 y(with)53 b Fo(case)p
Fs(,)i(comparison)g(is)f(done)f(using)k Fo(eqv?)p Fs(.)74
b(The)54 b(comparison)g(pro)5 b(cedures)54 b(used)g(in)581
9215 y(sym)-5 b(b)5 b(ol,)57 b(string,)e(and)h(in)-5
b(teger)56 b(tables)f(are)g Fo(eq?)p Fs(,)h Fo(string=?)p
Fs(,)h(and)f Fo(=)p Fs(.)830 9415 y Fo(Make-table-maker)47
b Fs(tak)-5 b(es)44 b(t)-5 b(w)g(o)44 b(pro)5 b(cedures)45
b(as)f(argumen)-5 b(ts)46 b(and)e(returns)h(a)f(n)-5
b(ullary)581 9614 y(table-making)39 b(pro)5 b(cedure.)67
b Fr(Comp)-8 b(ar)g(e-pr)g(o)g(c)46 b Fs(should)39 b(b)5
b(e)38 b(a)f(t)-5 b(w)g(o-argumen)g(t)40 b(equalit)-5
b(y)37 b(pred-)581 9813 y(icate.)134 b Fr(Hash-pr)-8
b(o)g(c)84 b Fs(should)77 b(b)5 b(e)76 b(a)f(one)h(argumen)-5
b(t)76 b(pro)5 b(cedure)75 b(that)g(tak)-5 b(es)76 b(a)f(k)-5
b(ey)75 b(and)581 10012 y(returns)51 b(a)g(non-negativ)-5
b(e)51 b(in)-5 b(teger)51 b(hash)g(v)-9 b(alue.)72 b(If)64
b Fo(\()p Fr(c)-8 b(omp)g(ar)g(e-pr)g(o)g(c)94 b(x)108
b(y)15 b Fo(\))50 b Fs(returns)h(true,)3362 10511 y(41)p
eop end
%%Page: 42 50
TeXDict begin 42 49 bop 1478 1046 a Fs(then)72 b Fo(\(=)88
b(\()p Fr(hash-pr)-8 b(o)g(c)96 b(x)20 b Fo(\))87 b(\()p
Fr(hash-pr)-8 b(o)g(c)96 b(y)15 b Fo(\)\))72 b Fs(m)-5
b(ust)74 b(also)f(return)g(true.)125 b(F)-14 b(or)73
b(example,)1478 1245 y Fo(make-integer-table)58 b Fs(could)e(b)5
b(e)55 b(de\014ned)h(as)g Fo(\(make-table-maker)90 b(=)d(abs\))p
Fs(.)1727 1446 y Fo(Make-table-immutable!)77 b Fs(prohibits)57
b(future)e(mo)5 b(di\014cation)55 b(to)g(its)h(argumen)-5
b(t.)1511 1749 y Fj(\017)83 b Fo(\(table?)101 b Fr(value)12
b Fo(\))85 b Fj(!)e Fr(b)-8 b(o)g(ole)g(an)1511 1948
y Fj(\017)83 b Fo(\(table-ref)i Fr(table)f(key)15 b Fo(\))83
b Fj(!)g Fr(value)i(or)d Fo(#f)1511 2147 y Fj(\017)h
Fo(\(table-set!)i Fr(table)f(key)g(value)12 b Fo(\))1511
2347 y Fj(\017)83 b Fo(\(table-walk)i Fr(pr)-8 b(o)g(c)g(e)g(dur)g(e)81
b(table)12 b Fo(\))1478 2650 y(Table?)130 b Fs(is)74
b(the)f(predicate)g(for)h(tables.)129 b Fo(Table-ref)75
b Fs(and)f Fo(table-set!)131 b Fs(access)74 b(and)1478
2849 y(mo)5 b(dify)69 b(the)h(v)-9 b(alue)69 b(of)83
b Fr(key)i Fs(in)70 b Fr(table)12 b Fs(.)119 b Fo(Table-walk)71
b Fs(applies)g Fr(pr)-8 b(o)g(c)g(e)g(dur)g(e)12 b Fs(,)73
b(whic)-5 b(h)70 b(m)-5 b(ust)1478 3048 y(accept)54 b(t)-5
b(w)g(o)56 b(argumen)-5 b(ts,)57 b(to)e(ev)-5 b(ery)54
b(asso)5 b(ciated)56 b(k)-5 b(ey)55 b(and)g(non-)p Fo(#f)i
Fs(v)-9 b(alue)55 b(in)h Fo(table)p Fs(.)1511 3351 y
Fj(\017)83 b Fo(\(default-hash-function)k Fr(value)12
b Fo(\))85 b Fj(!)e Fr(inte)-8 b(ger)1511 3550 y Fj(\017)83
b Fo(\(string-hash)i Fr(string)15 b Fo(\))84 b Fj(!)f
Fr(inte)-8 b(ger)1478 3853 y Fo(Default-hash-function)75
b Fs(is)d(the)f(hash)i(function)e(used)i(in)f(the)f(tables)h(returned)f
(b)-5 b(y)1478 4052 y Fo(make-table)p Fs(,)57 b(and)f
Fo(string-hash)h Fs(it)e(the)g(one)h(used)g(b)-5 b(y)58
b Fo(make-string-table)p Fs(.)1478 4609 y Fl(5.14)270
b(P)-7 b(ort)89 b(extensions)1478 4975 y Fs(These)55
b(pro)5 b(cedures)56 b(are)f(in)h(structure)f Fo(extended-ports)p
Fs(.)1511 5278 y Fj(\017)83 b Fo(\(make-string-input-port)k
Fr(string)15 b Fo(\))84 b Fj(!)f Fr(input-p)-8 b(ort)1511
5477 y Fj(\017)83 b Fo(\(make-string-output-port\))k
Fj(!)c Fr(output-p)-8 b(ort)1511 5676 y Fj(\017)83 b
Fo(\(string-output-port-output)88 b Fr(string-output-p)-8
b(ort)16 b Fo(\))84 b Fj(!)f Fr(string)1478 5979 y Fo
(Make-string-input-port)44 b Fs(returns)c(an)g(input)g(p)5
b(ort)40 b(that)f(that)g(reads)i(c)-5 b(haracters)40
b(from)1478 6179 y(the)79 b(supplied)h(string.)146 b(An)79
b(end-of-\014le)h(ob)9 b(ject)79 b(is)h(returned)f(if)g(the)f(user)i
(reads)g(past)1478 6378 y(the)58 b(end)h(of)f(the)h(string.)84
b Fo(Make-string-output-port)62 b Fs(returns)d(an)g(output)g(p)5
b(ort)58 b(that)1478 6577 y(sa)-5 b(v)g(es)84 b(the)f(c)-5
b(haracters)83 b(written)f(to)h(it.)157 b(These)83 b(are)g(then)g
(returned)g(as)g(a)g(string)h(b)-5 b(y)1478 6776 y Fo
(string-output-port-output)p Fs(.)1478 7148 y Fo(\(read)88
b(\(make-string-input-port)j("\(a)d(b\)"\)\))1826 7348
y Fj(!)g Fo('\(a)f(b\))1478 7746 y(\(let)h(\(\(p)f
(\(make-string-output-port\)\)\))1652 7945 y(\(write)h('\(a)g(b\))g
(p\))1652 8145 y(\(let)g(\(\(s)g(\(string-output-port-output)j(p\)\)\))
1826 8344 y(\(display)e("c")f(p\))1826 8543 y(\(list)h(s)e
(\(string-output-port-output)92 b(p\)\)\)\))1826 8742
y Fj(!)c Fo('\("\(a)g(b\)")f("\(a)h(b\)c"\))1511 9112
y Fj(\017)83 b Fo(\(limit-output)i Fr(output-p)-8 b(ort)83
b(n)h(pr)-8 b(o)g(c)g(e)g(dur)g(e)12 b Fo(\))1478 9415
y Fr(Pr)-8 b(o)g(c)g(e)g(dur)g(e)63 b Fs(is)53 b(called)f(on)h(an)f
(output)h(p)5 b(ort.)72 b(Output)52 b(written)g(to)g(that)f(p)5
b(ort)52 b(is)h(copied)g(to)1478 9614 y Fr(output-p)-8
b(ort)66 b Fs(un)-5 b(til)51 b Fr(n)63 b Fs(c)-5 b(haracters)50
b(ha)-5 b(v)g(e)51 b(b)5 b(een)50 b(written,)g(at)g(whic)-5
b(h)51 b(p)5 b(oin)-5 b(t)50 b Fo(limit-output)1478 9813
y Fs(returns.)106 b(If)65 b Fr(pr)-8 b(o)g(c)g(e)g(dur)g(e)77
b Fs(returns)67 b(b)5 b(efore)65 b(writing)h Fr(n)79
b Fs(c)-5 b(haracters,)68 b(then)e Fo(limit-output)1478
10012 y Fs(also)51 b(returns)g(at)f(that)f(time,)j(regardless)f(of)f
(ho)-5 b(w)51 b(man)-5 b(y)51 b(c)-5 b(haracters)51 b(ha)-5
b(v)g(e)51 b(b)5 b(een)50 b(written.)4259 10511 y(42)p
eop end
%%Page: 43 51
TeXDict begin 43 50 bop 614 1046 a Fj(\017)83 b Fo
(\(make-tracking-input-port)88 b Fr(input-p)-8 b(ort)16
b Fo(\))83 b Fj(!)g Fr(input-p)-8 b(ort)614 1245 y Fj(\017)83
b Fo(\(make-tracking-output-port)88 b Fr(output-p)-8
b(ort)16 b Fo(\))83 b Fj(!)g Fr(output-p)-8 b(ort)614
1445 y Fj(\017)83 b Fo(\(current-row)i Fr(p)-8 b(ort)16
b Fo(\))83 b Fj(!)g Fr(inte)-8 b(ger)84 b(or)f Fo(#f)614
1644 y Fj(\017)g Fo(\(current-column)j Fr(p)-8 b(ort)16
b Fo(\))82 b Fj(!)h Fr(inte)-8 b(ger)85 b(or)d Fo(#f)614
1843 y Fj(\017)h Fo(\(fresh-line)i Fr(output-p)-8 b(ort)16
b Fo(\))581 2148 y(Make-tracking-input-port)41 b Fs(and)d
Fo(make-tracking-output-port)j Fs(return)c(p)5 b(orts)37
b(that)581 2347 y(k)-5 b(eep)44 b(trac)-5 b(k)43 b(of)h(the)f(curren)-5
b(t)44 b(ro)-5 b(w)44 b(and)h(column)f(and)h(are)e(otherwise)h(iden)-5
b(tical)44 b(to)g(their)f(ar-)581 2546 y(gumen)-5 b(ts.)69
b(Closing)38 b(a)f(trac)-5 b(king)37 b(p)5 b(ort)36 b(do)5
b(es)37 b(not)g(close)g(the)f(underlying)i(p)5 b(ort.)67
b Fo(Current-row)581 2745 y Fs(and)56 b Fo(current-column)i
Fs(return)d Fr(p)-8 b(ort)15 b Fs('s)56 b(curren)-5 b(t)55
b(read)g(or)h(write)e(lo)5 b(cation.)74 b(They)55 b(return)581
2945 y Fo(#f)76 b Fs(if)f Fr(p)-8 b(ort)90 b Fs(do)5
b(es)76 b(not)f(k)-5 b(eep)75 b(trac)-5 b(k)75 b(of)g(its)h(lo)5
b(cation.)133 b Fo(Fresh-line)77 b Fs(writes)e(a)g(newline)581
3144 y(c)-5 b(haracter)55 b(to)g Fr(output-p)-8 b(ort)71
b Fs(if)d Fo(\(current-row)90 b Fr(p)-8 b(ort)16 b Fo(\))54
b Fs(is)i(not)g(0.)581 3519 y Fo(\(define)89 b(p)e(\(open-output-port)j
("/tmp/temp"\)\))581 3718 y(\(list)e(\(current-row)h(p\))f
(\(current-column)i(p\)\))930 3917 y Fj(!)d Fo('\(0)h(0\))581
4117 y(\(display)h("012")f(p\))581 4316 y(\(list)g(\(current-row)h(p\))
f(\(current-column)i(p\)\))930 4515 y Fj(!)d Fo('\(0)h(3\))581
4714 y(\(fresh-line)h(p\))581 4914 y(\(list)f(\(current-row)h(p\))f
(\(current-column)i(p\)\))930 5113 y Fj(!)d Fo('\(1)h(0\))581
5312 y(\(fresh-line)h(p\))581 5511 y(\(list)f(\(current-row)h(p\))f
(\(current-column)i(p\)\))930 5711 y Fj(!)d Fo('\(1)h(0\))581
6270 y Fl(5.15)270 b(Fluid)90 b(bindings)581 6637 y Fs(These)60
b(pro)5 b(cedures)60 b(implemen)-5 b(t)61 b(dynamic)f(binding)h(and)g
(are)e(in)h(structure)g Fo(fluids)p Fs(.)88 b(A)581 6836
y Fr(\015uid)68 b Fs(is)52 b(a)f(cell)g(whose)h(v)-9
b(alue)51 b(can)g(b)5 b(e)51 b(b)5 b(ound)52 b(dynamically)-14
b(.)73 b(Eac)-5 b(h)52 b(\015uid)g(has)g(a)g(top-lev)-5
b(el)581 7036 y(v)c(alue)37 b(that)g(is)h(used)g(when)f(the)g(\015uid)h
(is)g(un)-5 b(b)5 b(ound)39 b(in)f(the)f(curren)-5 b(t)37
b(dynamic)h(en)-5 b(vironmen)g(t.)614 7340 y Fj(\017)83
b Fo(\(make-fluid)i Fr(value)12 b Fo(\))85 b Fj(!)e Fr(\015uid)614
7540 y Fj(\017)g Fo(\(fluid)h Fr(\015uid)17 b Fo(\))83
b Fj(!)g Fr(value)614 7739 y Fj(\017)g Fo(\(let-fluid)i
Fr(\015uid)e(value)h(thunk)18 b Fo(\))84 b Fj(!)f Fr(value\(s\))614
7938 y Fj(\017)g Fo(\(let-fluids)i Fr(\015uid)2145 7963
y Fm(0)2302 7938 y Fr(value)2670 7963 y Fm(0)2829 7938
y Fr(\015uid)3152 7963 y Fm(1)3309 7938 y Fr(value)3677
7963 y Fm(1)3836 7938 y Fr(.)25 b(.)g(.)g(thunk)18 b
Fo(\))85 b Fj(!)e Fr(value\(s\))581 8243 y Fo(Make-fluid)60
b Fs(returns)e(a)g(new)g(\015uid)h(with)f Fr(value)71
b Fs(as)59 b(its)f(initial)g(top-lev)-5 b(el)58 b(v)-9
b(alue.)82 b Fo(Fluid)581 8442 y Fs(returns)f Fo(fluid)p
Fs('s)g(curren)-5 b(t)80 b(v)-9 b(alue.)147 b Fo(Let-fluid)82
b Fs(calls)e Fo(thunk)p Fs(,)87 b(with)80 b Fr(\015uid)97
b Fs(b)5 b(ound)80 b(to)581 8641 y Fr(value)89 b Fs(un)-5
b(til)77 b Fo(thunk)f Fs(returns.)136 b(Using)76 b(a)f(con)-5
b(tin)g(uation)77 b(to)e(thro)-5 b(w)76 b(out)g(of)f(the)g(call)h(to)
581 8841 y Fo(thunk)54 b Fs(causes)h Fr(\015uid)70 b
Fs(to)53 b(rev)-5 b(ert)52 b(to)h(its)h(original)g(v)-9
b(alue,)53 b(while)h(thro)-5 b(wing)54 b(bac)-5 b(k)53
b(in)h(causes)581 9040 y Fr(\015uid)59 b Fs(to)43 b(b)5
b(e)42 b(reb)5 b(ound)43 b(to)f Fr(value)12 b Fs(.)72
b Fo(Let-fluid)44 b Fs(returns)f(the)f(v)-9 b(alue\(s\))42
b(returned)h(b)-5 b(y)45 b Fr(thunk)18 b Fs(.)581 9239
y Fo(Let-fluids)52 b Fs(is)f(iden)-5 b(tical)51 b(to)f
Fo(let-fluid)i Fs(except)d(that)h(it)g(binds)i(an)e(arbitrary)g(n)-5
b(um)g(b)5 b(er)581 9438 y(of)55 b(\015uids)i(to)e(new)g(v)-9
b(alues.)581 9813 y Fo(\(let*)88 b(\(\(f)g(\(make-fluid)h('a\)\))1191
10012 y(\(v0)f(\(fluid)g(f\)\))3362 10511 y Fs(43)p eop
end
%%Page: 44 52
TeXDict begin 44 51 bop 2088 1046 a Fo(\(v1)88 b(\(let-fluid)h(f)e('b)
2611 1245 y(\(lambda)h(\(\))2785 1445 y(\(fluid)h(f\)\)\)\))2088
1644 y(\(v2)f(\(fluid)g(f\)\)\))1652 1843 y(\(list)g(v0)g(v1)f(v2\)\))
1652 2042 y Fj(!)g Fo('\(a)h(b)f(a\))1478 2394 y(\(let)h(\(\(f)f
(\(make-fluid)i('a\)\))2001 2593 y(\(path)f('\(\)\))2001
2792 y(\(c)f(#f\)\))1652 2992 y(\(let)h(\(\(add)g(\(lambda)g(\(\))2785
3191 y(\(set!)g(path)g(\(cons)g(\(fluid)h(f\))e(path\)\)\)\)\))1826
3390 y(\(add\))1826 3589 y(\(let-fluid)i(f)f('b)2001
3789 y(\(lambda)g(\(\))2175 3988 y(\(call-with-current-continuation)
2350 4187 y(\(lambda)g(\(c0\))2524 4386 y(\(set!)g(c)f(c0\)\)\))2175
4586 y(\(add\)\)\))1826 4785 y(\(add\))1826 4984 y(\(if)h(\(<)g
(\(length)g(path\))g(5\))2175 5183 y(\(c\))2175 5383
y(\(reverse)h(path\)\)\)\))1652 5582 y Fj(!)e Fo('\(a)h(b)f(a)h(b)f
(a\))1478 6129 y Fl(5.16)270 b(Shell)90 b(commands)1478
6492 y Fs(Structure)55 b Fo(c-system-function)j Fs(pro)-5
b(vides)56 b(access)g(to)f(the)g(C)g Fo(system\(\))i
Fs(function.)1511 6780 y Fj(\017)83 b Fo(\(have-system?\))104
b Fj(!)83 b Fr(b)-8 b(o)g(ole)g(an)1511 6979 y Fj(\017)83
b Fo(\(system)h Fr(string)15 b Fo(\))84 b Fj(!)f Fr(inte)-8
b(ger)1478 7267 y Fo(Have-system?)73 b Fs(returns)47
b(true)g(if)g(the)g(underlying)h(C)f(implemen)-5 b(tation)48
b(has)g(a)f(command)1478 7466 y(pro)5 b(cessor.)99 b
Fo(\(System)89 b Fr(string)15 b Fo(\))64 b Fs(passes)h
Fr(string)79 b Fs(to)63 b(the)h(C)f Fo(system\(\))i Fs(function)f(and)g
(re-)1478 7666 y(turns)56 b(the)f(result.)1478 8017 y
Fo(\(begin)1652 8216 y(\(system)89 b("echo)f(foo)f(>)h(test-file"\))
1652 8416 y(\(call-with-input-file)j("test-file")e(read\)\))1478
8615 y Fj(!)e Fo('foo)1478 9162 y Fl(5.17)270 b(So)7
b(c)-7 b(k)g(ets)1478 9525 y Fs(Structure)51 b Fo(sockets)j
Fs(pro)-5 b(vides)52 b(access)h(to)e(TCP/IP)h(so)5 b(c)-5
b(k)g(ets)52 b(for)g(in)-5 b(terpro)5 b(cess)53 b(and)f(net-)1478
9725 y(w)-5 b(ork)55 b(comm)-5 b(unication.)1511 10012
y Fj(\017)83 b Fo(\(open-socket\))i Fj(!)e Fr(so)-8 b(cket)4259
10511 y Fs(44)p eop end
%%Page: 45 53
TeXDict begin 45 52 bop 614 1046 a Fj(\017)83 b Fo(\(open-socket)i
Fr(p)-8 b(ort-numb)g(er)18 b Fo(\))84 b Fj(!)f Fr(so)-8
b(cket)614 1245 y Fj(\017)83 b Fo(\(socket-port-number)k
Fr(so)-8 b(cket)16 b Fo(\))83 b Fj(!)g Fr(inte)-8 b(ger)614
1445 y Fj(\017)83 b Fo(\(close-socket)j Fr(so)-8 b(cket)16
b Fo(\))614 1644 y Fj(\017)83 b Fo(\(socket-accept)j
Fr(so)-8 b(cket)16 b Fo(\))83 b Fj(!)g Fr(input-p)-8
b(ort)84 b(output-p)-8 b(ort)614 1843 y Fj(\017)83 b
Fo(\(get-host-name\))j Fj(!)d Fr(string)581 2260 y Fo(Open-socket)70
b Fs(creates)d(a)h(new)g(so)5 b(c)-5 b(k)g(et.)112 b(If)67
b(no)i Fr(p)-8 b(ort-numb)g(er)86 b Fs(is)68 b(supplied)i(the)d(system)
581 2459 y(pic)-5 b(ks)77 b(one)e(at)h(random.)135 b
Fo(Socket-port-number)79 b Fs(returns)d(a)g(so)5 b(c)-5
b(k)g(et's)76 b(p)5 b(ort)75 b(n)-5 b(um)g(b)5 b(er.)581
2658 y Fo(Close-socket)39 b Fs(closes)f(a)f(so)5 b(c)-5
b(k)g(et,)40 b(prev)-5 b(en)g(ting)37 b(an)-5 b(y)38
b(further)e(connections.)68 b Fo(Socket-accept)581 2858
y Fs(accepts)e(a)g(single)g(connection)g(on)g Fr(so)-8
b(cket)16 b Fs(,)69 b(returning)d(an)h(input)f(p)5 b(ort)65
b(and)i(an)f(output)581 3057 y(p)5 b(ort)58 b(for)h(comm)-5
b(unicating)60 b(with)e(the)h(clien)-5 b(t.)84 b(If)58
b(no)h(clien)-5 b(t)59 b(is)g(w)-5 b(aiting)61 b Fo(socket-accept)581
3256 y Fs(blo)5 b(c)-5 b(ks)53 b(un)-5 b(til)54 b(one)f(app)5
b(ears.)73 b Fo(Get-host-name)55 b Fs(returns)e(the)g(net)-5
b(w)g(ork)53 b(name)g(of)g(the)f(ma-)581 3455 y(c)-5
b(hine.)614 3872 y Fj(\017)83 b Fo(\(socket-client)j
Fr(host-name)d(p)-8 b(ort-numb)g(er)18 b Fo(\))84 b Fj(!)f
Fr(input-p)-8 b(ort)83 b(output-p)-8 b(ort)581 4289 y
Fo(Socket-client)67 b Fs(connects)e(to)f(the)h(serv)-5
b(er)65 b(at)f Fr(p)-8 b(ort-numb)g(er)83 b Fs(on)65
b(the)f(mac)-5 b(hine)66 b(named)581 4489 y Fr(host-name)12
b Fs(.)75 b Fo(Socket-client)58 b Fs(blo)5 b(c)-5 b(ks)55
b(un)-5 b(til)56 b(the)f(serv)-5 b(er)56 b(accepts)f(the)g(connection.)
830 4727 y(The)44 b(follo)-5 b(wing)45 b(simple)g(example)f(sho)-5
b(ws)45 b(a)f(serv)-5 b(er)44 b(and)h(clien)-5 b(t)44
b(for)g(a)f(cen)-5 b(tralized)44 b(UID)581 4926 y(service.)581
5416 y Fo(\(define)89 b(\(id-server\))755 5615 y(\(let)f(\(\(socket)h
(\(open-socket\)\)\))930 5814 y(\(display)f("Waiting)h(on)e(port)h("\))
930 6014 y(\(display)g(\(socket-port-number)j(socket\)\))930
6213 y(\(newline\))930 6412 y(\(let)d(loop)g(\(\(next-id)g(0\)\))1104
6611 y(\(call-with-values)1279 6811 y(\(lambda)g(\(\))1453
7010 y(\(socket-accept)h(socket\)\))1279 7209 y(\(lambda)f(\(in)g
(out\))1453 7408 y(\(display)g(next-id)h(out\))1453 7608
y(\(close-input-port)h(in\))1453 7807 y(\(close-output-port)g(out\))
1453 8006 y(\(loop)e(\(+)f(next-id)i(1\)\)\)\)\)\)\))581
8405 y(\(define)g(\(get-id)f(machine)g(port-number\))755
8604 y(\(call-with-values)930 8803 y(\(lambda)g(\(\))1104
9002 y(\(socket-client)i(machine)e(port-number\)\))930
9202 y(\(lambda)g(\(in)g(out\))1104 9401 y(\(let)g(\(\(id)g(\(read)g
(in\)\)\))1279 9600 y(\(close-input-port)i(in\))1279
9799 y(\(close-output-port)g(out\))1279 9999 y(id\)\)\)\))3362
10511 y Fs(45)p eop end
%%Page: 46 54
TeXDict begin 46 53 bop 1478 1046 a Fl(5.18)270 b(Macros)90
b(for)g(writing)g(lo)7 b(ops)1478 1410 y Fo(Iterate)65
b Fs(and)g Fo(reduce)g Fs(are)f(extensions)g(of)g(named-)p
Fo(let)h Fs(for)f(writing)g(lo)5 b(ops)65 b(that)e(w)-5
b(alk)1478 1609 y(do)g(wn)57 b(one)g(or)g(more)f(sequences,)i(suc)-5
b(h)58 b(as)f(the)f(elemen)-5 b(ts)57 b(of)g(a)f(list)h(or)g(v)-5
b(ector,)56 b(the)g(c)-5 b(har-)1478 1808 y(acters)64
b(read)h(from)g(a)g(p)5 b(ort,)67 b(or)e(an)g(arithmetic)f(series.)104
b(Additional)65 b(sequences)g(can)g(b)5 b(e)1478 2008
y(de\014ned)56 b(b)-5 b(y)55 b(the)g(user.)75 b Fo(Iterate)56
b Fs(and)g Fo(reduce)h Fs(are)e(in)h(structure)f Fo(reduce)p
Fs(.)1478 2461 y Ff(5.18.1)225 b Fe(Iterate)1478 2767
y Fs(The)55 b(syn)-5 b(tax)55 b(of)68 b Fo(iterate)57
b Fs(is:)1652 3045 y Fo(\(iterate)89 b Fr(lo)-8 b(op-name)2437
3244 y Fo(\(\()p Fr(se)g(quenc)g(e-typ)g(e)101 b(element-variable)i(se)
-8 b(quenc)g(e-data)101 b Fo(...\))2524 3443 y(...\))2437
3643 y(\(\()p Fr(state-variable)h(initial-value)12 b
Fo(\))2524 3842 y(...\))1826 4041 y Fr(b)-8 b(o)g(dy-expr)g(ession)1826
4240 y Fo([)p Fr(\014nal-expr)g(ession)13 b Fo(]\))1727
4518 y(Iterate)48 b Fs(steps)f(the)f Fr(element-variable)12
b Fs(s)52 b(in)47 b(parallel)g(through)g(the)f(sequences,)j(while)1478
4717 y(eac)-5 b(h)48 b Fr(state-variable)62 b Fs(has)49
b(the)e(corresp)5 b(onding)52 b Fr(initial-value)62 b
Fs(for)48 b(the)f(\014rst)h(iteration)g(and)1478 4917
y(ha)-5 b(v)g(e)62 b(later)g(v)-9 b(alues)62 b(supplied)i(b)-5
b(y)64 b Fr(b)-8 b(o)g(dy-expr)g(ession)13 b Fs(.)93
b(If)62 b(an)-5 b(y)62 b(sequence)g(has)h(reac)-5 b(hed)62
b(its)1478 5116 y(limit)77 b(the)g(v)-9 b(alue)77 b(of)g(the)f
Fo(iterate)j Fs(expression)f(is)f(the)g(v)-9 b(alue)77
b(of)90 b Fr(\014nal-expr)-8 b(ession)13 b Fs(,)83 b(if)1478
5315 y(presen)-5 b(t,)49 b(or)f(the)e(curren)-5 b(t)48
b(v)-9 b(alues)47 b(of)g(the)g Fr(state-variable)12 b
Fs(s,)52 b(returned)47 b(as)h(m)-5 b(ultiple)48 b(v)-9
b(alues.)1478 5514 y(If)76 b(no)i(sequence)e(has)i(reac)-5
b(hed)77 b(its)g(limit,)83 b Fr(b)-8 b(o)g(dy-expr)g(ession)89
b Fs(is)77 b(ev)-9 b(aluated)76 b(and)i(either)1478 5714
y(calls)63 b Fr(lo)-8 b(op-name)76 b Fs(with)63 b(new)g(v)-9
b(alues)63 b(for)g(the)f Fr(state-variable)12 b Fs(s,)69
b(or)63 b(returns)g(some)h(other)1478 5913 y(v)-9 b(alue\(s\).)1727
6112 y(The)60 b Fr(lo)-8 b(op-name)73 b Fs(and)60 b(the)g
Fr(state-variable)12 b Fs(s)63 b(and)d Fr(initial-value)12
b Fs(s)63 b(b)5 b(eha)-5 b(v)g(e)60 b(exactly)f(as)1478
6311 y(in)d(named-)p Fo(let)p Fs(.)75 b(The)55 b(named-)p
Fo(let)i Fs(expression)1652 6589 y Fo(\(let)88 b(loop-name)h
(\(\(state-variable)h(initial-value\))f(...\))1826 6788
y(body)f(...\))1478 7066 y Fs(is)54 b(equiv)-9 b(alen)k(t)54
b(to)f(an)i Fo(iterate)g Fs(expression)g(with)f(no)g(sequences)h(\(and)
f(with)g(an)g(explicit)1478 7265 y Fo(let)45 b Fs(wrapp)5
b(ed)44 b(around)i(the)e(b)5 b(o)g(dy)43 b(expressions)j(to)e(tak)-5
b(e)44 b(care)g(of)g(an)-5 b(y)45 b(in)-5 b(ternal)45
b Fo(define)p Fs(s\):)1652 7543 y Fo(\(iterate)89 b(loop-name)2437
7742 y(\(\))2437 7941 y(\(\(state-variable)h(initial-value\))f(...\))
1826 8141 y(\(let)f(\(\))g(body)g(...\)\))1727 8418 y
Fs(The)65 b Fr(se)-8 b(quenc)g(e-typ)g(e)12 b Fs(s)66
b(are)f(k)-5 b(eyw)g(ords)65 b(\(they)f(are)g(actually)g(macros)i(of)e
(a)h(particular)1478 8618 y(form;)87 b(it)76 b(is)g(easy)h(to)e(add)i
(additional)g(t)-5 b(yp)5 b(es)76 b(of)g(sequences\).)136
b(Examples)77 b(are)f Fo(list*)1478 8817 y Fs(whic)-5
b(h)60 b(w)-5 b(alks)59 b(do)-5 b(wn)60 b(the)f(elemen)-5
b(ts)60 b(of)f(a)g(list)h(and)f Fo(vector*)i Fs(whic)-5
b(h)60 b(do)5 b(es)59 b(the)g(same)h(for)1478 9016 y(v)-5
b(ectors.)73 b(F)-14 b(or)55 b(eac)-5 b(h)55 b(iteration,)f(eac)-5
b(h)54 b Fr(element-variable)71 b Fs(is)55 b(b)5 b(ound)55
b(to)f(the)g(next)f(elemen)-5 b(t)1478 9215 y(of)55 b(the)g(sequence.)
74 b(The)55 b Fr(se)-8 b(quenc)g(e-data)69 b Fs(giv)-5
b(es)56 b(the)f(actual)g(list)h(or)f(v)-5 b(ector)55
b(or)g(whatev)-5 b(er.)1727 9415 y(If)68 b(there)g(is)h(a)g
Fr(\014nal-expr)-8 b(ession)13 b Fs(,)73 b(it)c(is)g(ev)-9
b(aluated)68 b(when)g(the)h(end)f(of)h(one)f(or)h(more)1478
9614 y(sequences)61 b(is)g(reac)-5 b(hed.)90 b(If)60
b(the)h Fr(b)-8 b(o)g(dy-expr)g(ession)72 b Fs(do)5 b(es)61
b(not)g(call)f Fr(lo)-8 b(op-name)74 b Fs(the)60 b Fr(\014nal-)1478
9813 y(expr)-8 b(ession)79 b Fs(is)66 b(not)g(ev)-9 b(aluated.)105
b(The)65 b Fr(state-variable)12 b Fs(s)69 b(are)d(visible)h(in)f
Fr(\014nal-expr)-8 b(ession)1478 10012 y Fs(but)55 b(the)g
Fr(se)-8 b(quenc)g(e-variable)12 b Fs(s)59 b(are)d(not.)4259
10511 y(46)p eop end
%%Page: 47 55
TeXDict begin 47 54 bop 830 1046 a Fs(The)58 b Fr(b)-8
b(o)g(dy-expr)g(ession)70 b Fs(and)58 b(the)g Fr(\014nal-expr)-8
b(ession)72 b Fs(are)57 b(in)i(tail-p)5 b(osition)58
b(within)g(the)581 1245 y Fo(iterate)p Fs(.)105 b(Unlik)-5
b(e)65 b(named-)p Fo(let)p Fs(,)k(the)c(b)5 b(eha)-5
b(vior)65 b(of)g(a)g(non-tail-recursiv)-5 b(e)67 b(call)e(to)g
Fr(lo)-8 b(op-)581 1445 y(name)58 b Fs(is)46 b(unsp)5
b(eci\014ed)46 b(\(b)5 b(ecause)44 b(iterating)h(do)-5
b(wn)46 b(a)f(sequence)f(ma)-5 b(y)46 b(in)-5 b(v)g(olv)g(e)46
b(side)f(e\013ects,)581 1644 y(suc)-5 b(h)57 b(as)f(reading)f(c)-5
b(haracters)56 b(from)f(a)h(p)5 b(ort\).)581 2129 y Ff(5.18.2)225
b Fe(Reduce)581 2443 y Fs(If)38 b(an)g Fo(iterate)g Fs(expression)h(is)
f(not)g(mean)-5 b(t)38 b(to)f(terminate)h(b)5 b(efore)37
b(a)g(sequence)h(has)g(reac)-5 b(hed)581 2642 y(its)62
b(end,)h Fr(b)-8 b(o)g(dy-expr)g(ession)74 b Fs(will)62
b(alw)-5 b(a)g(ys)62 b(end)g(with)f(a)h(tail)f(call)g(to)h
Fr(lo)-8 b(op-name)12 b Fs(.)93 b Fo(Reduce)581 2841
y Fs(is)58 b(a)f(macro)g(that)f(mak)-5 b(es)58 b(this)f(common)h(case)f
(explicit.)78 b(The)57 b(syn)-5 b(tax)57 b(of)70 b Fo(reduce)58
b Fs(is)f(the)581 3041 y(same)39 b(as)g(that)e(of)51
b Fo(iterate)p Fs(,)43 b(except)37 b(that)h(there)g(is)h(no)f
Fr(lo)-8 b(op-name)12 b Fs(.)69 b(The)38 b Fr(b)-8 b(o)g(dy-expr)g
(ession)581 3240 y Fs(returns)54 b(new)g(v)-9 b(alues)53
b(of)h(the)f Fr(state-variable)12 b Fs(s)56 b(instead)f(of)e(passing)i
(them)f(to)f Fr(lo)-8 b(op-name)12 b Fs(.)581 3439 y(Th)-5
b(us)63 b Fr(b)-8 b(o)g(dy-expr)g(ession)73 b Fs(m)-5
b(ust)63 b(return)e(as)h(man)-5 b(y)63 b(v)-9 b(alues)61
b(as)h(there)f(are)g(state)g(v)-9 b(ariables.)581 3638
y(By)44 b(sp)5 b(ecial)45 b(disp)5 b(ensation,)48 b(if)c(there)g(are)h
(no)f(state)g(v)-9 b(ariables)45 b(then)g Fr(b)-8 b(o)g(dy-expr)g
(ession)56 b Fs(ma)-5 b(y)581 3838 y(return)55 b(an)-5
b(y)56 b(n)-5 b(um)g(b)5 b(er)57 b(of)e(v)-9 b(alues,)55
b(all)h(of)f(whic)-5 b(h)56 b(are)f(ignored.)830 4041
y(The)h(syn)-5 b(tax)55 b(of)68 b Fo(reduce)56 b Fs(is:)755
4389 y Fo(\(reduce)89 b(\(\()p Fr(se)-8 b(quenc)g(e-typ)g(e)101
b(element-variable)i(se)-8 b(quenc)g(e-data)102 b Fo(...\))1627
4588 y(...\))1540 4787 y(\(\()p Fr(state-variable)g(initial-value)12
b Fo(\))1627 4986 y(...\))930 5186 y Fr(b)-8 b(o)g(dy-expr)g(ession)930
5385 y Fo([)p Fr(\014nal-expr)g(ession)13 b Fo(]\))830
5729 y Fs(The)58 b(v)-9 b(alue\(s\))56 b(returned)i(b)-5
b(y)58 b(an)f(instance)h(of)70 b Fo(reduce)59 b Fs(is)f(the)f(v)-9
b(alue\(s\))57 b(returned)g(b)-5 b(y)581 5928 y(the)75
b Fr(\014nal-expr)-8 b(ession)13 b Fs(,)82 b(if)76 b(presen)-5
b(t,)81 b(or)75 b(the)h(curren)-5 b(t)75 b(v)-9 b(alue\(s\))75
b(of)g(the)g(state)g(v)-9 b(ariables)581 6127 y(when)56
b(the)f(end)g(of)g(one)h(or)f(more)h(sequences)f(is)h(reac)-5
b(hed.)830 6330 y(A)59 b Fo(reduce)h Fs(expression)g(can)f(b)5
b(e)58 b(rewritten)g(as)i(an)f(equiv)-9 b(alen)k(t)59
b Fo(iterate)h Fs(expression)581 6529 y(b)-5 b(y)53 b(adding)h(a)f
Fr(lo)-8 b(op-var)71 b Fs(and)53 b(a)g(wrapp)5 b(er)53
b(for)g(the)f Fr(b)-8 b(o)g(dy-expr)g(ession)65 b Fs(that)53
b(calls)g(the)g Fr(lo)-8 b(op-)581 6729 y(var)18 b Fs(.)581
7076 y Fo(\(iterate)89 b(loop)1366 7276 y(\(\()p Fr(se)-8
b(quenc)g(e-typ)g(e)101 b(element-variable)i(se)-8 b(quenc)g(e-data)101
b Fo(...\))1453 7475 y(...\))1366 7674 y(\(\()p Fr(state-variable)h
(initial-value)12 b Fo(\))1453 7873 y(...\))755 8073
y(\(call-with-values)91 b(\(lambda)d(\(\))2499 8272 y
Fr(b)-8 b(o)g(dy-expr)g(ession)13 b Fo(\))2325 8471 y(loop\))755
8670 y([)p Fr(\014nal-expr)-8 b(ession)13 b Fo(]\))581
9156 y Ff(5.18.3)225 b(Sequence)74 b(t)-6 b(yp)6 b(es)581
9469 y Fs(The)55 b(prede\014ned)h(sequence)g(t)-5 b(yp)5
b(es)55 b(are:)614 9813 y Fj(\017)83 b Fo(\(list*)h Fr(elt-var)103
b(list)16 b Fo(\))3563 b Fs(syn)-5 b(tax)614 10012 y
Fj(\017)83 b Fo(\(vector*)i Fr(elt-var)102 b(ve)-8 b(ctor)18
b Fo(\))3173 b Fs(syn)-5 b(tax)3362 10511 y(47)p eop
end
%%Page: 48 56
TeXDict begin 48 55 bop 1511 1046 a Fj(\017)83 b Fo(\(string*)h
Fr(elt-var)103 b(string)15 b Fo(\))3192 b Fs(syn)-5 b(tax)1511
1245 y Fj(\017)83 b Fo(\(count*)h Fr(elt-var)103 b(start)c
Fo([)p Fr(end)i Fo([)p Fr(step)10 b Fo(]]\))2278 b Fs(syn)-5
b(tax)1511 1445 y Fj(\017)83 b Fo(\(input*)h Fr(elt-var)103
b(input-p)-8 b(ort)99 b(r)-8 b(e)g(ad-pr)g(o)g(c)g(e)g(dur)g(e)12
b Fo(\))1846 b Fs(syn)-5 b(tax)1511 1644 y Fj(\017)83
b Fo(\(stream*)h Fr(elt-var)103 b(pr)-8 b(o)g(c)g(e)g(dur)g(e)94
b(initial-data)13 b Fo(\))2044 b Fs(syn)-5 b(tax)1727
1961 y(F)-14 b(or)49 b(lists,)h(v)-5 b(ectors,)50 b(and)f(strings)g
(the)f(elemen)-5 b(t)48 b(v)-9 b(ariable)49 b(is)f(b)5
b(ound)49 b(to)f(the)g(successiv)-5 b(e)1478 2160 y(elemen)g(ts)56
b(of)f(the)g(list)g(or)h(v)-5 b(ector,)55 b(or)g(the)g(c)-5
b(haracters)56 b(in)f(the)g(string.)1727 2359 y(F)-14
b(or)56 b Fo(count*)g Fs(the)f(elemen)-5 b(t)56 b(v)-9
b(ariable)55 b(is)h(b)5 b(ound)56 b(to)f(the)g(elemen)-5
b(ts)56 b(of)f(the)g(sequence)1565 2676 y Fr(start)16
b Fo(,)87 b Fr(start)103 b Fo(+)88 b Fr(step)10 b Fo(,)88
b Fr(start)103 b Fo(+)87 b(2)p Fr(step)10 b Fo(,)88 b(...,)g
Fr(end)1478 2993 y Fs(inclusiv)-5 b(e)70 b(of)82 b Fr(start)k
Fs(and)70 b(exclusiv)-5 b(e)69 b(of)82 b Fr(end)17 b
Fs(.)118 b(The)69 b(default)g Fr(step)81 b Fs(is)70 b(1.)116
b(The)69 b(sequence)1478 3192 y(do)5 b(es)61 b(not)f(terminate)h(if)g
(no)g Fr(end)78 b Fs(is)62 b(giv)-5 b(en)61 b(or)g(if)f(there)h(is)g
(no)g Fg(N)74 b(>)55 b Fs(0)61 b(suc)-5 b(h)62 b(that)f
Fr(end)78 b Fs(=)1478 3391 y Fr(start)j Fs(+)66 b(N)p
Fr(step)75 b Fs(\()p Fo(=)66 b Fs(is)g(used)g(to)f(test)g(for)g
(termination\).)104 b(F)-14 b(or)66 b(example,)i Fo(\(count*)89
b(i)e(0)1478 3591 y(-1\))65 b Fs(do)5 b(esn't)64 b(terminate)g(b)5
b(ecause)65 b(it)f(b)5 b(egins)65 b(past)f(the)g Fr(end)83
b Fs(v)-9 b(alue)64 b(and)g Fo(\(count*)89 b(i)e(0)1478
3790 y(1)g(2\))56 b Fs(do)5 b(esn't)55 b(terminate)g(b)5
b(ecause)56 b(it)f(skips)h(o)-5 b(v)g(er)56 b(the)f Fr(end)73
b Fs(v)-9 b(alue.)1727 3989 y(F)-14 b(or)65 b Fo(input*)h
Fs(the)f(elemen)-5 b(ts)65 b(are)g(the)g(results)g(of)g(successiv)-5
b(e)66 b(applications)g(of)78 b Fr(r)-8 b(e)g(ad-)1478
4188 y(pr)g(o)g(c)g(e)g(dur)g(e)88 b Fs(to)77 b Fr(input-p)-8
b(ort)16 b Fs(.)141 b(The)78 b(sequence)f(ends)h(when)g
Fr(r)-8 b(e)g(ad-pr)g(o)g(c)g(e)g(dur)g(e)88 b Fs(returns)78
b(an)1478 4388 y(end-of-\014le)56 b(ob)9 b(ject.)1727
4587 y(F)-14 b(or)47 b(a)f(stream,)j(the)d Fr(pr)-8 b(o)g(c)g(e)g(dur)g
(e)58 b Fs(tak)-5 b(es)46 b(the)g(curren)-5 b(t)47 b(data)f(v)-9
b(alue)46 b(as)h(an)g(argumen)-5 b(t)47 b(and)1478 4786
y(returns)54 b(t)-5 b(w)g(o)54 b(v)-9 b(alues,)54 b(the)g(next)f(v)-9
b(alue)53 b(of)h(the)f(sequence)h(and)g(a)g(new)g(data)f(v)-9
b(alue.)73 b(If)54 b(the)1478 4985 y(new)h(data)g(is)h
Fo(#f)g Fs(then)f(the)g(previous)h(elemen)-5 b(t)56 b(w)-5
b(as)56 b(the)f(last)g(one.)74 b(F)-14 b(or)56 b(example,)1652
5302 y Fo(\(list*)88 b(elt)g(my-list\))1478 5619 y Fs(is)56
b(the)f(same)h(as)1652 5936 y Fo(\(stream*)89 b(elt)e(list->stream)j
(my-list\))1478 6253 y Fs(where)55 b Fo(list->stream)i
Fs(is)1652 6570 y Fo(\(lambda)89 b(\(list\))1826 6769
y(\(if)f(\(null?)g(list\))2175 6968 y(\(values)h('ignored)f(#f\))2175
7168 y(\(values)h(\(car)e(list\))h(\(cdr)g(list\)\)\)\))1478
7629 y Ff(5.18.4)225 b(Sync)-6 b(hronous)72 b(sequences)1478
7936 y Fs(When)50 b(using)h(the)f(sequence)g(t)-5 b(yp)5
b(es)50 b(describ)5 b(ed)51 b(ab)5 b(o)-5 b(v)g(e,)51
b(a)f(lo)5 b(op)50 b(terminates)h(when)f(an)-5 b(y)51
b(of)1478 8135 y(its)58 b(sequences)g(reac)-5 b(hes)58
b(its)g(end.)81 b(T)-14 b(o)58 b(help)g(detect)e(bugs)j(it)e(is)i
(useful)f(to)f(ha)-5 b(v)g(e)58 b(sequence)1478 8334
y(t)-5 b(yp)5 b(es)51 b(that)g(c)-5 b(hec)g(k)52 b(to)f(see)g(if)h(t)-5
b(w)g(o)51 b(or)h(more)g(sequences)g(end)f(on)h(the)f(same)i
(iteration.)72 b(F)-14 b(or)1478 8533 y(this)48 b(purp)5
b(ose)49 b(there)e(is)i(second)g(set)f(of)f(sequence)h(t)-5
b(yp)5 b(es)48 b(called)g(sync)-5 b(hronous)50 b(sequences.)1478
8733 y(These)59 b(are)f(iden)-5 b(tical)59 b(to)f(the)g(ones)i(listed)f
(ab)5 b(o)-5 b(v)g(e)58 b(except)g(that)g(they)f(cause)i(an)g(error)g
(to)1478 8932 y(b)5 b(e)57 b(signalled)i(if)e(a)h(lo)5
b(op)58 b(is)g(terminated)g(b)-5 b(y)57 b(a)h(sync)-5
b(hronous)60 b(sequence)d(and)h(some)h(other)1478 9131
y(sync)-5 b(hronous)57 b(sequence)e(did)h(not)f(reac)-5
b(h)56 b(its)g(end)f(on)h(the)f(same)h(iteration.)1727
9330 y(Sequences)62 b(are)g(c)-5 b(hec)g(k)g(ed)62 b(for)g(termination)
g(in)g(order,)i(from)e(left)f(to)g(righ)-5 b(t,)64 b(and)f(if)e(a)1478
9530 y(lo)5 b(op)55 b(is)h(terminated)f(b)-5 b(y)56 b(a)f(non-sync)-5
b(hronous)58 b(sequence)e(no)f(further)g(c)-5 b(hec)g(king)56
b(is)g(done.)1727 9729 y(The)f(sync)-5 b(hronous)57 b(sequences)f(are:)
1511 10012 y Fj(\017)83 b Fo(\(list\045)h Fr(elt-var)103
b(list)16 b Fo(\))3562 b Fs(syn)-5 b(tax)4259 10511 y(48)p
eop end
%%Page: 49 57
TeXDict begin 49 56 bop 614 1046 a Fj(\017)83 b Fo(\(vector\045)i
Fr(elt-var)102 b(ve)-8 b(ctor)18 b Fo(\))3173 b Fs(syn)-5
b(tax)614 1245 y Fj(\017)83 b Fo(\(string\045)i Fr(elt-var)102
b(string)15 b Fo(\))3193 b Fs(syn)-5 b(tax)614 1445 y
Fj(\017)83 b Fo(\(count\045)i Fr(elt-var)102 b(start)d(end)i
Fo([)p Fr(step)10 b Fo(]\))2453 b Fs(syn)-5 b(tax)614
1644 y Fj(\017)83 b Fo(\(input\045)i Fr(elt-var)102 b(input-p)-8
b(ort)99 b(r)-8 b(e)g(ad-pr)g(o)g(c)g(e)g(dur)g(e)12
b Fo(\))1847 b Fs(syn)-5 b(tax)614 1843 y Fj(\017)83
b Fo(\(stream\045)i Fr(elt-var)102 b(pr)-8 b(o)g(c)g(e)g(dur)g(e)94
b(initial-data)13 b Fo(\))2045 b Fs(syn)-5 b(tax)830
2132 y(Note)70 b(that)f(the)h(sync)-5 b(hronous)73 b
Fo(count\045)e Fs(m)-5 b(ust)72 b(ha)-5 b(v)g(e)71 b(an)f
Fr(end)17 b Fs(,)75 b(unlik)-5 b(e)71 b(the)f(nonsyn-)581
2331 y(c)-5 b(hronous)57 b Fo(count\045)p Fs(.)581 2794
y Ff(5.18.5)225 b(Examples)581 3100 y Fs(Gathering)56
b(the)f(indexes)h(of)f(list)g(elemen)-5 b(ts)56 b(that)f(answ)-5
b(er)56 b(true)f(to)g(some)h(predicate.)581 3422 y Fo(\(lambda)89
b(\(my-list)f(predicate\))755 3621 y(\(reduce)h(\(\(list*)f(elt)g
(my-list\))1540 3820 y(\(count*)g(i)g(0\)\))1453 4020
y(\(\(hits)g('\(\)\)\))930 4219 y(\(if)g(\(predicate)g(elt\))1279
4418 y(\(cons)g(i)f(hits\))1279 4617 y(hits\))930 4817
y(\(reverse)h(hits\)\))581 5139 y Fs(Lo)5 b(oking)55
b(for)g(the)g(index)g(of)h(an)f(elemen)-5 b(t)56 b(of)f(a)g(list.)581
5460 y Fo(\(lambda)89 b(\(my-list)f(predicate\))755 5660
y(\(iterate)h(loop)1540 5859 y(\(\(list*)f(elt)g(my-list\))1627
6058 y(\(count*)h(i)e(0\)\))1540 6257 y(\(\))2790 b(;)87
b(no)h(state)930 6457 y(\(if)g(\(predicate)g(elt\))1279
6656 y(i)1279 6855 y(\(loop\)\)\)\))581 7177 y Fs(Reading)56
b(one)g(line.)581 7499 y Fo(\(define)89 b(\(read-line)f(port\))755
7698 y(\(iterate)h(loop)1540 7897 y(\(\(input*)g(c)e(port)h
(read-char\)\))1540 8097 y(\(\(chars)g('\(\)\)\))930
8296 y(\(if)g(\(char=?)g(c)f(#\\newline\))1279 8495 y(\(list->string)i
(\(reverse)f(chars\)\))1279 8694 y(\(loop)g(\(cons)g(c)f(chars\)\)\))
930 8894 y(\(if)h(\(null?)g(chars\))1279 9093 y(\(eof-object\))1279
9292 y(;)f(no)g(newline)i(at)e(end)h(of)f(file)1279 9491
y(\(list->string)i(\(reverse)f(chars\)\)\)\)\))581 9813
y Fs(Coun)-5 b(ting)57 b(the)f(lines)h(in)f(a)h(\014le.)76
b(W)-14 b(e)56 b(can't)g(use)g Fo(count*)i Fs(b)5 b(ecause)56
b(w)-5 b(e)56 b(need)g(the)g(v)-9 b(alue)56 b(of)581
10012 y(the)f(coun)-5 b(t)56 b(after)e(the)h(lo)5 b(op)56
b(has)g(\014nished.)3362 10511 y(49)p eop end
%%Page: 50 58
TeXDict begin 50 57 bop 1478 1046 a Fo(\(define)88 b(\(line-count)h
(name\))1652 1245 y(\(call-with-input-file)i(name)1826
1445 y(\(lambda)e(\(in\))2001 1644 y(\(reduce)f(\(\(input*)h(l)e(in)h
(read-line\)\))2698 1843 y(\(\(i)g(0\)\))2175 2042 y(\(+)g(i)f
(1\)\)\)\)\))1478 2495 y Ff(5.18.6)225 b(De\014ning)74
b(sequence)h(t)-6 b(yp)6 b(es)1478 2801 y Fs(The)48 b(sequence)h(t)-5
b(yp)5 b(es)48 b(are)h(ob)9 b(ject-orien)-5 b(ted)49
b(macros)g(similar)h(to)e(en)-5 b(umerations.)73 b(A)48
b(non-)1478 3000 y(sync)-5 b(hronous)62 b(sequence)f(macro)g(needs)g
(to)f(supply)i(three)e(v)-9 b(alues:)84 b Fo(#f)61 b
Fs(to)f(indicate)h(that)1478 3200 y(it)55 b(isn't)g(sync)-5
b(hronous,)57 b(a)e(list)h(of)f(state)f(v)-9 b(ariables)55
b(and)h(their)f(initializers,)h(and)f(the)g(co)5 b(de)1478
3399 y(for)58 b(one)g(iteration.)82 b(The)59 b(\014rst)f(t)-5
b(w)g(o)59 b(metho)5 b(ds)58 b(are)h(CPS'ed:)80 b(they)57
b(tak)-5 b(e)58 b(another)g(macro)1478 3598 y(and)h(argumen)-5
b(t)60 b(to)f(whic)-5 b(h)60 b(to)e(pass)j(their)e(result.)85
b(The)59 b Fo(synchronized?)87 b Fs(metho)5 b(d)59 b(gets)1478
3797 y(no)72 b(additional)h(argumen)-5 b(ts.)124 b(The)72
b Fo(state-vars)i Fs(metho)5 b(d)72 b(is)g(passed)i(a)d(list)i(of)e
(names)1478 3997 y(whic)-5 b(h)63 b(will)f(b)5 b(e)62
b(b)5 b(ound)63 b(to)e(the)h(argumen)-5 b(ts)63 b(to)f(the)g(sequence.)
94 b(The)62 b(\014nal)h(metho)5 b(d,)64 b(for)1478 4196
y(the)45 b(step,)k(is)d(passed)i(the)d(list)i(of)e(names)i(b)5
b(ound)47 b(to)f(the)f(argumen)-5 b(ts)48 b(and)e(the)g(list)g(of)g
(state)1478 4395 y(v)-9 b(ariables.)72 b(In)50 b(addition)h(there)e(is)
i(a)f(v)-9 b(ariable)50 b(to)f(b)5 b(e)50 b(b)5 b(ound)51
b(to)e(the)h(next)f(elemen)-5 b(t)50 b(of)g(the)1478
4594 y(sequence,)64 b(the)e(b)5 b(o)g(dy)62 b(expression)h(for)f(the)g
(lo)5 b(op,)64 b(and)f(an)g(expression)g(for)f(terminating)1478
4794 y(the)55 b(lo)5 b(op.)1727 4993 y(The)55 b(de\014nition)h(of)68
b Fo(list*)56 b Fs(is)1478 5267 y Fo(\(define-syntax)89
b(list*)1652 5466 y(\(syntax-rules)h(\(synchronized?)f(state-vars)g
(step\))1826 5665 y(\(\(list*)g(synchronized?)g(\(next)f(more\)\))1914
5864 y(\(next)g(#f)f(more\)\))1826 6064 y(\(\(list*)i(state-vars)g
(\(start-list\))g(\(next)f(more\)\))1914 6263 y(\(next)g(\(\(list-var)h
(start-list\)\))g(more\)\))1826 6462 y(\(\(list*)g(step)f
(\(start-list\))h(\(list-var\))2524 6661 y(value-var)g(loop-body)f
(final-exp\))1914 6861 y(\(if)f(\(null?)i(list-var\))2262
7060 y(final-exp)2262 7259 y(\(let)f(\(\(value-var)h(\(car)f
(list-var\)\))2785 7458 y(\(list-var)h(\(cdr)f(list-var\)\)\))2437
7658 y(loop-body\)\)\)\)\))1727 7932 y Fs(Sync)-5 b(hronized)71
b(sequences)f(are)g(the)g(same,)75 b(except)69 b(that)g(they)h(need)g
(to)g(pro)-5 b(vide)70 b(a)1478 8131 y(termination)60
b(test)g(to)g(b)5 b(e)60 b(used)h(when)f(some)h(other)f(sync)-5
b(hronized)61 b(metho)5 b(d)60 b(terminates)1478 8330
y(the)55 b(lo)5 b(op.)1478 8604 y Fo(\(define-syntax)89
b(list\045)1652 8803 y(\(syntax-rules)h(\(sync)e(done\))1826
9002 y(\(\(list\045)h(sync)f(\(next)g(more\)\))1914 9202
y(\(next)g(#t)f(more\)\))1826 9401 y(\(\(list\045)i(done)f
(\(start-list\))h(\(list-var\)\))1914 9600 y(\(null?)f(list-var\)\))
1826 9799 y(\(\(list\045)h(stuff)f(...\))1914 9999 y(\(list*)g(stuff)g
(...\)\)\)\))4259 10511 y Fs(50)p eop end
%%Page: 51 59
TeXDict begin 51 58 bop 581 1046 a Ff(5.18.7)225 b(Expanded)74
b(co)6 b(de)581 1355 y Fs(The)55 b(expansion)i(of)755
1693 y Fo(\(reduce)89 b(\(\(list*)f(x)g('\(1)f(2)h(3\)\)\))1453
1893 y(\(\(r)g('\(\)\)\))930 2092 y(\(cons)g(x)f(r\)\))581
2429 y Fs(is)755 2767 y Fo(\(let)h(\(\(final)h(\(lambda)f(\(r\))g
(\(values)g(r\)\)\))1279 2966 y(\(list)g('\(1)f(2)h(3\)\))1279
3165 y(\(r)f('\(\)\)\))930 3364 y(\(let)h(loop)g(\(\(list)g(list\))g
(\(r)f(r\)\))1104 3564 y(\(if)h(\(null?)g(list\))1453
3763 y(\(final)g(r\))1453 3962 y(\(let)g(\(\(x)f(\(car)h(list\)\))1976
4161 y(\(list)g(\(cdr)g(list\)\)\))1627 4361 y(\(let)g(\(\(continue)h
(\(lambda)f(\(r\))3196 4560 y(\(loop)g(list)g(r\)\)\)\))1802
4759 y(\(continue)g(\(cons)g(x)g(r\)\)\)\)\)\)\))830
5096 y Fs(The)52 b(only)h(ine\016ciencies)f(in)h(this)g(co)5
b(de)51 b(are)h(the)g Fo(final)h Fs(and)g Fo(continue)g
Fs(pro)5 b(cedures,)581 5295 y(b)g(oth)63 b(of)f(whic)-5
b(h)64 b(could)f(b)5 b(e)62 b(substituted)h(in-line.)97
b(The)63 b(macro)g(expander)g(could)g(do)g(the)581 5494
y(substitution)57 b(for)f Fo(continue)h Fs(when)f(there)f(is)i(no)f
(explicit)f(pro)5 b(ceed)56 b(v)-9 b(ariable,)56 b(as)g(in)g(this)581
5694 y(case,)g(but)f(not)g(in)h(general.)581 6251 y Fl(5.19)270
b(Sorting)91 b(lists)e(and)h(v)-7 b(ectors)581 6617 y
Fs(\(This)62 b(section,)h(as)f(the)f(libraries)i(it)e(describ)5
b(es,)64 b(w)-5 b(as)62 b(written)f(mostly)h(b)-5 b(y)62
b(Olin)g(Shiv)-5 b(ers)581 6816 y(for)55 b(the)g(draft)g(of)g(SRFI)h
(32.\))830 7017 y(The)g(sort)f(libraries)h(in)g(Sc)-5
b(heme)56 b(48)f(include)830 7354 y Fj(\017)83 b Fs(v)-5
b(ector)55 b(insert)g(sort)h(\(stable\))830 7692 y Fj(\017)83
b Fs(v)-5 b(ector)55 b(heap)h(sort)830 8030 y Fj(\017)83
b Fs(v)-5 b(ector)55 b(merge)g(sort)h(\(stable\))830
8368 y Fj(\017)83 b Fs(pure)56 b(and)g(destructiv)-5
b(e)55 b(list)h(merge)f(sort)g(\(stable\))830 8706 y
Fj(\017)83 b Fs(stable)56 b(v)-5 b(ector)54 b(and)i(list)g(merge)830
9044 y Fj(\017)83 b Fs(miscellaneous)89 b(sort-related)f(pro)5
b(cedures:)138 b(v)-5 b(ector)86 b(and)i(list)g(merging,)96
b(sorted)996 9244 y(predicates,)47 b(v)-5 b(ector)43
b(binary)i(searc)-5 b(h,)47 b(v)-5 b(ector)44 b(and)h(list)f
(delete-equal-neigh)-5 b(b)5 b(or)45 b(pro-)996 9443
y(cedures.)830 9781 y Fj(\017)83 b Fs(a)54 b(general,)g
(non-algorithmic)g(set)f(of)g(pro)5 b(cedure)54 b(names)g(for)f
(general)g(sorting)h(and)996 9980 y(merging)3362 10511
y(51)p eop end
%%Page: 52 60
TeXDict begin 52 59 bop 1478 1046 a Ff(5.19.1)225 b(Design)75
b(rules)1478 1355 y Fp(What)44 b(vs.)78 b(ho)-5 b(w)166
b Fs(There)38 b(are)g(t)-5 b(w)g(o)38 b(di\013eren)-5
b(t)38 b(in)-5 b(terfaces:)65 b(\\what")38 b(\(simple\))g(and)h(\\ho)-5
b(w")1478 1554 y(\(detailed\).)1478 1923 y Fp(Simple)83
b Fs(y)-5 b(ou)66 b(sp)5 b(ecify)66 b(seman)-5 b(tics:)98
b(datat)-5 b(yp)5 b(e)65 b(\(list)i(or)f(v)-5 b(ector\),)69
b(m)-5 b(utabilit)g(y)-14 b(,)70 b(and)d(sta-)1893 2123
y(bilit)-5 b(y)-14 b(.)1478 2459 y Fp(Detailed)83 b Fs(y)-5
b(ou)50 b(sp)5 b(ecify)49 b(the)g(actual)h(algorithm)g(\(quic)-5
b(k,)51 b(heap,)g(insert,)h(merge\).)71 b(Di\013er-)1893
2658 y(en)-5 b(t)51 b(algorithms)h(ha)-5 b(v)g(e)51 b(di\013eren)-5
b(t)51 b(prop)5 b(erties,)52 b(b)5 b(oth)51 b(seman)-5
b(tic)51 b(and)h(pragmatic,)g(so)1893 2857 y(these)j(exp)5
b(orts)55 b(are)g(necessary)-14 b(.)1893 3125 y(It)56
b(is)h(necessarily)h(the)e(case)h(that)f(the)g(sp)5 b(eci\014cations)57
b(of)g(these)f(pro)5 b(cedures)57 b(mak)-5 b(e)1893 3324
y(statemen)g(ts)59 b(ab)5 b(out)59 b(execution)f(\\pragmatics.")86
b(F)-14 b(or)60 b(example,)g(the)f(sole)g(distinc-)1893
3524 y(tion)45 b(b)5 b(et)-5 b(w)g(een)45 b(heap)h(sort)f(and)h(quic)-5
b(k)46 b(sort|b)5 b(oth)45 b(of)g(whic)-5 b(h)46 b(are)f(pro)-5
b(vided)46 b(b)-5 b(y)46 b(this)1893 3723 y(library|-is)60
b(one)f(of)g(execution)f(time,)i(whic)-5 b(h)59 b(is)h(not)f(a)g
(\\seman)-5 b(tic")60 b(distinction.)1893 3922 y(Similar)74
b(resource-use)h(statemen)-5 b(ts)73 b(are)h(made)f(ab)5
b(out)73 b(\\iterativ)-5 b(e")73 b(pro)5 b(cedures,)1893
4121 y(meaning)72 b(that)e(they)g(can)h(execute)e(on)i(input)h(of)e
(arbitrary)h(size)g(in)g(a)g(constan)-5 b(t)1893 4321
y(n)g(um)g(b)5 b(er)57 b(of)e(stac)-5 b(k)55 b(frames.)1478
4758 y Fp(Consistency)66 b(across)g(pro)5 b(cedure)65
b(signatures)166 b Fs(The)57 b(t)-5 b(w)g(o)57 b(in)-5
b(terfaces)57 b(share)h(com-)1478 4957 y(mon)c(pro)5
b(cedure)54 b(signatures)g(wherev)-5 b(er)54 b(p)5 b(ossible,)55
b(to)e(facilitate)g(switc)-5 b(hing)55 b(a)e(giv)-5 b(en)54
b(call)1478 5156 y(from)h(one)h(pro)5 b(cedure)55 b(to)g(another.)1478
5594 y Fp(Less-than)61 b(parameter)f(\014rst,)i(data)g(parameter)d
(after)166 b Fs(These)54 b(pro)5 b(cedures)53 b(uni-)1478
5793 y(formly)47 b(observ)-5 b(e)48 b(the)f(follo)-5
b(wing)49 b(parameter)e(order:)70 b(the)48 b(data)f(to)g(b)5
b(e)47 b(sorted)h(comes)g(after)1478 5992 y(the)55 b(comparison)h(pro)5
b(cedure.)74 b(That)55 b(is,)h(w)-5 b(e)56 b(write)1652
6363 y Fo(\(sort)88 b Fg(<)f Fr(list)17 b Fo(\))1727
6732 y Fs(not)1652 7103 y Fo(\(sort)88 b Fr(list)104
b Fg(<)p Fo(\))1478 7540 y Fp(Ordering,)82 b(comparison)e(pro)5
b(cedures)78 b(and)h(stabilit)-5 b(y)167 b Fs(These)68
b(routines)h(tak)-5 b(e)68 b(a)1478 7739 y Fg(<)75 b
Fs(comparison)h(pro)5 b(cedure,)80 b(not)75 b(a)f Fj(\024)h
Fs(comparison)i(pro)5 b(cedure,)79 b(and)d(they)e(sort)h(in)-5
b(to)1478 7939 y(increasing)66 b(order.)104 b(The)66
b(di\013erence)f(b)5 b(et)-5 b(w)g(een)65 b(a)g Fg(<)h
Fs(sp)5 b(ec)65 b(and)h(a)f Fj(\024)h Fs(sp)5 b(ec)65
b(comes)h(up)g(in)1478 8138 y(t)-5 b(w)g(o)55 b(places:)1727
8507 y Fj(\017)83 b Fs(the)55 b(de\014nition)h(of)f(an)h(ordered)f(or)g
(sorted)h(data)f(set,)h(and)1727 8844 y Fj(\017)83 b
Fs(the)55 b(de\014nition)h(of)f(a)g(stable)h(sorting)g(algorithm.)1727
9213 y(W)-14 b(e)50 b(sa)-5 b(y)50 b(that)g(a)g(data)g(set)g(\(a)g
(list)g(or)g(v)-5 b(ector\))49 b(is)i Fr(sorte)-8 b(d)67
b Fs(or)50 b Fr(or)-8 b(der)g(e)g(d)66 b Fs(if)50 b(it)g(con)-5
b(tains)51 b(no)1478 9413 y(adjacen)-5 b(t)55 b(pair)h(of)f(v)-9
b(alues)55 b Fg(:)28 b(:)g(:)g(x;)g(y)33 b(:)28 b(:)g(:)55
b Fs(suc)-5 b(h)57 b(that)e Fg(y)d(<)47 b(x)p Fs(.)1727
9613 y(In)55 b(other)g(w)-5 b(ords,)57 b(scanning)g(across)f(the)f
(data)g(nev)-5 b(er)55 b(tak)-5 b(es)55 b(a)h(\\do)-5
b(wn)g(w)g(ards")58 b(step.)1727 9813 y(If)52 b(y)-5
b(ou)53 b(use)h(a)e Fj(\024)h Fs(pro)5 b(cedure)53 b(where)f(these)h
(algorithms)h(exp)5 b(ect)51 b(a)i Fg(<)g Fs(pro)5 b(cedure,)53
b(y)-5 b(ou)1478 10012 y(ma)g(y)42 b(not)g(get)g(the)g(answ)-5
b(ers)43 b(y)-5 b(ou)43 b(exp)5 b(ect.)68 b(F)-14 b(or)42
b(example,)j(the)d Fo(list-sorted?)71 b Fs(pro)5 b(cedure)4259
10511 y(52)p eop end
%%Page: 53 61
TeXDict begin 53 60 bop 581 1046 a Fs(will)69 b(return)g(false)g(if)g
(y)-5 b(ou)69 b(pass)i(it)d(a)h Fj(\024)g Fs(comparison)i(pro)5
b(cedure)69 b(and)g(an)g(ordered)g(list)581 1245 y(con)-5
b(taining)56 b(adjacen)-5 b(t)55 b(equal)h(elemen)-5
b(ts.)830 1445 y(A)43 b(\\stable")h(sort)f(is)i(one)e(that)g(preserv)-5
b(es)44 b(the)f(pre-existing)h(order)g(of)f(equal)g(elemen)-5
b(ts.)581 1644 y(Supp)5 b(ose,)46 b(for)41 b(example,)j(that)d(w)-5
b(e)42 b(sort)g(a)g(list)g(of)f(n)-5 b(um)g(b)5 b(ers)43
b(b)-5 b(y)42 b(comparing)h(their)e(absolute)581 1843
y(v)-9 b(alues,)56 b(i.e.,)f(using)i(comparison)g(pro)5
b(cedure)581 2156 y Fo(\(lambda)89 b(\(x)e(y\))h(\(<)f(\(abs)h(x\))f
(\(abs)h(y\)\)\))581 2469 y Fs(If)55 b(w)-5 b(e)56 b(sort)f(a)g(list)h
(that)f(con)-5 b(tains)56 b(b)5 b(oth)55 b(3)h(and)f(-3:)2892
2811 y Fg(:)28 b(:)g(:)f Fs(3)p Fg(;)h(:)g(:)g(:)g(;)g
Fj(\000)p Fs(3)g Fg(:)g(:)g(:)581 3152 y Fs(then)73 b(a)h(stable)f
(sort)h(is)g(an)g(algorithm)f(that)g(will)h(not)f(sw)-5
b(ap)74 b(the)f(order)h(of)f(these)g(t)-5 b(w)g(o)581
3352 y(elemen)g(ts,)56 b(that)f(is,)h(the)f(answ)-5 b(er)56
b(is)g(guaran)-5 b(teed)56 b(to)f(to)g(lo)5 b(ok)55 b(lik)-5
b(e)3040 3693 y Fg(:)28 b(:)g(:)f Fs(3)p Fg(;)h Fj(\000)p
Fs(3)g Fg(:)g(:)g(:)581 4035 y Fs(not)3016 4234 y Fg(:)g(:)g(:)37
b Fj(\000)g Fs(3)p Fg(;)28 b Fs(3)g Fg(:)g(:)g(:)581
4519 y Fs(Cho)5 b(osing)62 b Fg(<)f Fs(for)f(the)h(comparison)h(pro)5
b(cedure)61 b(instead)g(of)g Fj(\024)g Fs(a\013ects)f(ho)-5
b(w)62 b(stabilit)-5 b(y)61 b(is)581 4718 y(co)5 b(ded.)71
b(Giv)-5 b(en)45 b(an)h(adjacen)-5 b(t)46 b(pair)f Fg(x;)28
b(y)6 b Fs(,)48 b Fo(\(<)88 b Fg(y)93 b(x)p Fo(\))46
b Fs(means)g(\\)p Fg(x)f Fs(should)i(b)5 b(e)45 b(mo)-5
b(v)g(ed)47 b(in)f(fron)-5 b(t)581 4917 y(of)60 b Fg(x)p
Fs("|otherwise,)h(lea)-5 b(v)g(e)60 b(things)h(as)f(they)f(are.)88
b(So)60 b(using)h(a)f Fj(\024)g Fs(pro)5 b(cedure)60
b(where)g(a)g Fg(<)581 5117 y Fs(pro)5 b(cedure)55 b(is)h(exp)5
b(ected)54 b(will)i Fr(invert)72 b Fs(stabilit)-5 b(y)-14
b(.)830 5316 y(This)56 b(is)g(due)g(to)f(the)g(de\014nition)h(of)f
(equalit)-5 b(y)-14 b(,)55 b(giv)-5 b(en)56 b(a)f Fg(<)h
Fs(comparator:)930 5629 y Fo(\(and)88 b(\(not)g(\(<)f(x)g(y\)\))1366
5828 y(\(not)h(\(<)f(y)g(x\)\)\))581 6141 y Fs(The)55
b(de\014nition)h(is)g(rather)f(di\013eren)-5 b(t,)56
b(giv)-5 b(en)56 b(a)f Fj(\024)g Fs(comparator:)930 6454
y Fo(\(and)88 b(\(<=)f(x)h(y\))1366 6654 y(\(<=)f(y)h(x\)\))581
6967 y Fs(A)74 b(\\stable")g(merge)g(is)g(one)g(that)g(reliably)g(fa)-5
b(v)g(ors)75 b(one)f(of)f(its)i(data)e(sets)i(when)f(equal)581
7166 y(items)59 b(app)5 b(ear)59 b(in)g(b)5 b(oth)59
b(data)f(sets.)85 b Fr(A)l(l)8 b(l)64 b(mer)-8 b(ge)63
b(op)-8 b(er)g(ations)62 b(in)g(this)h(libr)-8 b(ary)62
b(ar)-8 b(e)62 b(stable)p Fs(,)581 7365 y(breaking)j(ties)g(b)5
b(et)-5 b(w)g(een)65 b(data)g(sets)h(in)f(fa)-5 b(v)g(or)66
b(of)e(the)h(\014rst)h(data)f(set|elemen)-5 b(ts)65 b(of)g(the)581
7564 y(\014rst)56 b(list)g(come)f(b)5 b(efore)54 b(equal)i(elemen)-5
b(ts)56 b(in)f(the)g(second)h(list.)830 7764 y(So,)73
b(if)c(w)-5 b(e)69 b(are)f(merging)i(t)-5 b(w)g(o)69
b(lists)h(of)f(n)-5 b(um)g(b)5 b(ers)70 b(ordered)f(b)-5
b(y)70 b(absolute)f(v)-9 b(alue,)72 b(the)581 7963 y(stable)56
b(merge)f(op)5 b(eration)55 b Fo(list-merge)930 8276
y(\(list-merge)89 b(\(lambda)f(\(x)g(y\))f(\(<)h(\(abs)g(x\))f(\(abs)h
(y\)\)\))1976 8475 y('\(0)g(-2)f(4)g(8)h(-10\))g('\(-1)g(3)f(-4)g
(7\)\))581 8788 y Fs(reliably)51 b(places)h(the)e(4)h(of)g(the)g
(\014rst)g(list)g(b)5 b(efore)51 b(the)f(equal-comparing)i(-4)g(of)e
(the)h(second)581 8988 y(list:)930 9301 y Fo(\(0)87 b(-1)h(-2)f(4)h(-4)
f(7)h(8)f(-10\))581 9614 y Fs(Some)52 b(sort)f(algorithms)h(will)f
Fr(not)56 b(work)g(c)-8 b(orr)g(e)g(ctly)66 b Fs(if)51
b(giv)-5 b(en)51 b(a)g Fj(\024)g Fs(when)h(they)e(exp)5
b(ect)49 b(a)j Fg(<)581 9813 y Fs(comparison)57 b(\(or)e(vice-v)-5
b(ersa\).)830 10012 y(In)56 b(short,)g(if)f(y)-5 b(our)55
b(comparison)i(pro)5 b(cedure)55 b Fg(f)74 b Fs(answ)-5
b(ers)57 b(true)e(to)g Fo(\()p Fg(f)105 b Fo(x)87 b(x\))p
Fs(,)56 b(then)3362 10511 y(53)p eop end
%%Page: 54 62
TeXDict begin 54 61 bop 1727 1046 a Fj(\017)83 b Fs(using)52
b(a)g(stable)f(sorting)h(or)f(merging)h(algorithm)g(will)f(not)h(giv)-5
b(e)51 b(y)-5 b(ou)51 b(a)h(stable)f(sort)1893 1245 y(or)k(merge,)1727
1548 y Fj(\017)83 b Fo(list-sorted?)76 b Fs(ma)-5 b(y)56
b(surprise)g(y)-5 b(ou.)1478 1821 y(Note)54 b(that)h(y)-5
b(ou)55 b(can)h(syn)-5 b(thesize)56 b(a)f Fg(<)h Fs(pro)5
b(cedure)55 b(from)g(a)h Fj(\024)f Fs(pro)5 b(cedure)55
b(with)1826 2094 y Fo(\(lambda)89 b(\(x)e(y\))h(\(not)g(\(<=)f(y)h
(x\)\)\))1478 2367 y Fs(if)55 b(need)g(b)5 b(e.)1727
2566 y(Precise)56 b(de\014nitions)i(giv)-5 b(e)56 b(sharp)h(edges)g(to)
f(to)5 b(ols,)56 b(but)g(require)g(care)g(in)h(use.)77
b(\\Mea-)1478 2765 y(sure)56 b(t)-5 b(wice,)55 b(cut)g(once.")1478
3184 y Fp(All)45 b(v)-5 b(ector)44 b(op)5 b(erations)46
b(accept)f(optional)h(subrange)f(parameters)165 b Fs(The)39
b(v)-5 b(ector)1478 3383 y(op)5 b(erations)60 b(sp)5
b(eci\014ed)60 b(b)5 b(elo)-5 b(w)60 b(all)h(tak)-5 b(e)59
b(optional)h Fo(start)p Fs(/)p Fo(end)i Fs(argumen)-5
b(ts)61 b(indicating)f(a)1478 3583 y(selected)66 b(subrange)j(of)d(a)i
(v)-5 b(ector's)66 b(elemen)-5 b(ts.)110 b(If)67 b(a)g
Fo(start)h Fs(parameter)f(or)g Fo(start)p Fs(/)p Fo(end)1478
3782 y Fs(parameter)58 b(pair)h(is)h(giv)-5 b(en)58 b(to)h(suc)-5
b(h)60 b(a)e(pro)5 b(cedure,)60 b(they)d(m)-5 b(ust)60
b(b)5 b(e)58 b(exact,)h(non-negativ)-5 b(e)1478 3981
y(in)g(tegers,)56 b(suc)-5 b(h)56 b(that)2736 4273 y(0)47
b Fj(\024)f Fr(start)62 b Fj(\024)46 b Fr(end)64 b Fj(\024)46
b Fo(\(vector-length)90 b Fr(ve)-8 b(ctor)18 b Fo(\))1478
4564 y Fs(where)64 b Fr(ve)-8 b(ctor)82 b Fs(is)65 b(the)f(related)f(v)
-5 b(ector)63 b(parameter.)100 b(If)64 b(not)g(sp)5 b(eci\014ed,)67
b(they)c(default)h(to)1478 4763 y(0)59 b(and)g(the)f(length)h(of)f(the)
h(v)-5 b(ector,)58 b(resp)5 b(ectiv)-5 b(ely)-14 b(.)84
b(They)58 b(are)h(in)-5 b(terpreted)58 b(to)g(select)h(the)1478
4962 y(range)k([)p Fr(start)16 b Fg(;)28 b Fr(end)18
b Fs(\),)65 b(that)d(is,)67 b(all)c(elemen)-5 b(ts)64
b(from)f(index)h Fr(start)79 b Fs(\(inclusiv)-5 b(e\))63
b(up)h(to,)h(but)1478 5162 y(not)55 b(including,)i(index)e
Fr(end)18 b Fs(.)1478 5581 y Fp(Required)79 b(vs.)h(allo)-5
b(w)g(ed)80 b(side-e\013ects)165 b Fo(List-sort!)119
b Fs(and)70 b Fo(List-stable-sort!)1478 5780 y Fs(are)60
b(allo)-5 b(w)g(ed,)64 b(but)c(not)h(required,)h(to)e(alter)g(their)h
(argumen)-5 b(ts')62 b(cons)f(cells)g(to)g(construct)1478
5979 y(the)53 b(result)h(list.)74 b(This)55 b(is)f(consisten)-5
b(t)55 b(with)f(the)f(what-not-ho)-5 b(w)55 b(c)-5 b(haracter)54
b(of)f(the)h(group)1478 6178 y(of)h(pro)5 b(cedures)56
b(to)f(whic)-5 b(h)56 b(they)e(b)5 b(elong)56 b(\(the)e
Fo(sorting)j Fs(structure\).)1727 6378 y(The)h Fo
(list-delete-neighbor-dups!)p Fs(,)64 b Fo(list-merge!)86
b Fs(and)59 b Fo(list-merge-sort!)1478 6577 y Fs(pro)5
b(cedures,)50 b(on)e(the)g(other)g(hand,)j(pro)-5 b(vide)48
b(sp)5 b(eci\014c)49 b(algorithms,)h(and,)h(as)d(suc)-5
b(h,)51 b(explic-)1478 6776 y(itly)60 b(commit)h(to)g(the)f(use)h(of)g
(side-e\013ects)g(on)g(their)g(input)g(lists)h(in)f(order)g(to)f
(guaran)-5 b(tee)1478 6975 y(their)55 b(k)-5 b(ey)55
b(algorithmic)h(prop)5 b(erties)55 b(\(e.g.,)g(linear-time)h(op)5
b(eration\).)1478 7427 y Ff(5.19.2)225 b(Pro)6 b(cedure)73
b(sp)6 b(eci\014cation)1585 7729 y Fs(Structure)54 b(name)1340
b(F)-14 b(unctionalit)-5 b(y)p 1485 7796 5715 7 v 1585
7935 a Fo(sorting)1856 b Fs(General)56 b(sorting)g(for)f(lists)h(and)g
(v)-5 b(ectors)1585 8135 y Fo(sorted)1943 b Fs(Sorted)56
b(predicates)f(for)g(lists)h(and)g(v)-5 b(ectors)1585
8334 y Fo(list-merge-sort)1160 b Fs(List)56 b(merge)f(sort)1585
8533 y Fo(vector-merge-sort)986 b Fs(V)-14 b(ector)55
b(merge)g(sort)1585 8732 y Fo(vector-heap-sort)1073 b
Fs(V)-14 b(ector)55 b(heap)g(sort)1585 8932 y Fo(vector-insert-sort)899
b Fs(V)-14 b(ector)55 b(insertion)h(sort)1585 9131 y
Fo(delete-neighbor-duplicates)203 b Fs(List)56 b(and)f(v)-5
b(ector)55 b(delete)g(neigh)-5 b(b)5 b(or)56 b(duplicates)1585
9330 y Fo(binary-searches)1160 b Fs(V)-14 b(ector)55
b(binary)g(searc)-5 b(h)1478 9614 y(Note)50 b(that)h(there)g(is)i(no)f
(\\list)g(insert)g(sort")f(pac)-5 b(k)c(age,)53 b(as)f(y)-5
b(ou)52 b(migh)-5 b(t)52 b(as)g(w)-5 b(ell)52 b(alw)-5
b(a)g(ys)53 b(use)1478 9813 y(list)k(merge)g(sort.)79
b(The)57 b(reference)f(implemen)-5 b(tation's)58 b(destructiv)-5
b(e)57 b(list)g(merge)g(sort)g(will)1478 10012 y(do)e(few)-5
b(er)55 b Fo(set-cdr!)p Fs(s)j(than)d(a)g(destructiv)-5
b(e)56 b(insert)f(sort.)4259 10511 y(54)p eop end
%%Page: 55 63
TeXDict begin 55 62 bop 581 1046 a Fp(Pro)5 b(cedure)90
b(naming)h(and)g(functionalit)-5 b(y)167 b Fs(Almost)79
b(all)g(of)g(the)f(pro)5 b(cedures)79 b(de-)581 1245
y(scrib)5 b(ed)55 b(b)5 b(elo)-5 b(w)54 b(are)g(v)-9
b(arian)k(ts)54 b(of)g(t)-5 b(w)g(o)54 b(basic)h(op)5
b(erations:)73 b(sorting)55 b(and)f(merging.)74 b(These)581
1445 y(pro)5 b(cedures)54 b(are)f(consisten)-5 b(tly)53
b(named)h(b)-5 b(y)54 b(comp)5 b(osing)54 b(a)f(set)g(of)g(basic)h
(lexemes)f(to)g(indi-)581 1644 y(cate)i(what)g(they)f(do.)779
1973 y(Lexeme)198 b(Meaning)p 679 2040 5533 7 v 779 2179
a Fo(sort)402 b Fs(The)66 b(pro)5 b(cedure)66 b(sorts)h(its)f(input)g
(data)g(set)g(b)-5 b(y)66 b(some)h Fg(<)f Fs(comparison)1529
2378 y(pro)5 b(cedure.)779 2578 y Fo(merge)315 b Fs(The)37
b(pro)5 b(cedure)37 b(merges)g(t)-5 b(w)g(o)38 b(ordered)f(data)g(sets)
g(in)-5 b(to)37 b(a)g(single)h(ordered)1529 2777 y(result.)779
2976 y Fo(stable)228 b Fs(This)56 b(lexeme)f(indicates)h(that)f(the)g
(sort)g(is)h(a)g(stable)f(one.)779 3175 y Fo(vector)228
b Fs(The)56 b(pro)5 b(cedure)55 b(op)5 b(erates)55 b(up)5
b(on)55 b(v)-5 b(ectors.)779 3375 y Fo(list)402 b Fs(The)56
b(pro)5 b(cedure)55 b(op)5 b(erates)55 b(up)5 b(on)55
b(lists.)779 3574 y Fo(!)663 b Fs(Pro)5 b(cedures)57
b(that)f(end)h(in)g Fo(!)78 b Fs(are)56 b(allo)-5 b(w)g(ed,)58
b(and)f(sometimes)h(required,)1529 3773 y(to)d(reuse)h(their)f(input)h
(storage)f(to)g(construct)g(their)g(answ)-5 b(er.)581
4208 y Fp(T)g(yp)5 b(es)46 b(of)h(parameters)e(and)h(return)g(v)-11
b(alues)166 b Fs(In)40 b(the)g(pro)5 b(cedures)41 b(sp)5
b(eci\014ed)40 b(b)5 b(elo)-5 b(w,)830 4546 y Fj(\017)83
b Fs(A)66 b Fo(<)f Fs(or)h Fo(=)g Fs(parameter)g(is)g(a)g(pro)5
b(cedure)66 b(accepting)f(t)-5 b(w)g(o)66 b(argumen)-5
b(ts)67 b(tak)-5 b(en)66 b(from)996 4746 y(the)55 b(sp)5
b(eci\014ed)56 b(pro)5 b(cedure's)56 b(data)f(set\(s\),)g(and)h
(returning)f(a)h(b)5 b(o)g(olean;)830 5086 y Fj(\017)83
b Fo(Start)g Fs(and)g Fo(end)g Fs(parameters)f(are)g(exact,)88
b(non-negativ)-5 b(e)82 b(in)-5 b(tegers)83 b(that)f(serv)-5
b(e)996 5285 y(as)70 b(v)-5 b(ector)68 b(indices)i(selecting)e(a)h
(subrange)h(of)f(some)h(asso)5 b(ciated)69 b(v)-5 b(ector.)114
b(When)996 5484 y(sp)5 b(eci\014ed,)56 b(they)f(m)-5
b(ust)56 b(satisfy)g(the)f(relation)2047 5854 y(0)47
b Fj(\024)f Fr(start)62 b Fj(\024)46 b Fr(end)64 b Fj(\024)46
b Fo(\(vector-length)90 b Fr(ve)-8 b(ctor)18 b Fo(\))996
6223 y Fs(where)55 b Fr(ve)-8 b(ctor)74 b Fs(is)56 b(the)f(asso)5
b(ciated)56 b(v)-5 b(ector.)581 6562 y(P)g(assing)72
b(v)-9 b(alues)70 b(to)f(pro)5 b(cedures)70 b(with)f(these)h
(parameters)g(that)f(do)h(not)g(satisfy)g(these)581 6761
y(t)-5 b(yp)5 b(es)55 b(is)h(an)g(error.)830 6962 y(If)50
b(a)h(pro)5 b(cedure)50 b(is)h(said)h(to)e(return)g(\\unsp)5
b(eci\014ed,")53 b(this)e(means)g(that)f(nothing)h(at)f(all)581
7161 y(is)f(said)g(ab)5 b(out)47 b(what)h(the)g(pro)5
b(cedure)47 b(returns,)j(not)e(ev)-5 b(en)48 b(the)g(n)-5
b(um)g(b)5 b(er)49 b(of)f(return)f(v)-9 b(alues.)581
7361 y(Suc)k(h)63 b(a)f(pro)5 b(cedure)61 b(is)i(not)e(ev)-5
b(en)62 b(required)g(to)f(b)5 b(e)61 b(consisten)-5 b(t)63
b(from)f(call)g(to)f(call)h(in)g(the)581 7560 y(nature)j(or)g(n)-5
b(um)g(b)5 b(er)66 b(of)f(its)g(return)g(v)-9 b(alues.)103
b(It)64 b(is)i(simply)g(required)f(to)f(return)h(a)g(v)-9
b(alue)581 7759 y(\(or)64 b(v)-9 b(alues\))64 b(that)g(ma)-5
b(y)65 b(b)5 b(e)64 b(passed)i(to)e(a)g(command)i(con)-5
b(tin)g(uation,)68 b(e.g.)101 b(as)65 b(the)f(v)-9 b(alue)581
7958 y(of)69 b(an)h(expression)h(app)5 b(earing)70 b(as)g(a)f
(non-terminal)i(subform)f(of)g(a)f Fo(begin)i Fs(expression.)581
8158 y(Note)59 b(that)h(in)g(R)1672 8097 y Fm(5)1747
8158 y Fs(RS,)g(this)h(restricts)f(suc)-5 b(h)61 b(a)f(pro)5
b(cedure)60 b(to)g(returning)g(a)g(single)h(v)-9 b(alue;)581
8357 y(non-R)1025 8297 y Fm(5)1101 8357 y Fs(RS)56 b(systems)g(ma)-5
b(y)56 b(not)f(ev)-5 b(en)55 b(pro)-5 b(vide)56 b(this)g(restriction.)
581 8799 y Fo(sorting)p Fp(|general)64 b(sorting)h(pac)-5
b(k)-11 b(age)581 9110 y Fs(This)42 b(library)g(pro)-5
b(vides)42 b(basic)g(sorting)f(and)h(merging)g(functionalit)-5
b(y)41 b(suitable)h(for)f(general)581 9309 y(programming.)142
b(The)77 b(pro)5 b(cedures)77 b(are)h(named)g(b)-5 b(y)77
b(their)g(seman)-5 b(tic)78 b(prop)5 b(erties,)83 b(i.e.,)581
9508 y(what)55 b(they)g(do)g(to)g(the)g(data)h(\(sort,)f(stable)g
(sort,)h(merge,)f(and)h(so)g(forth\).)614 9813 y Fj(\017)83
b Fo(\(list-sorted?)103 b Fg(<)83 b Fr(list)16 b Fo(\))83
b Fj(!)g Fr(b)-8 b(o)g(ole)g(an)614 10012 y Fj(\017)83
b Fo(\(list-merge)i Fg(<)e Fr(list)2250 10037 y Fm(1)2408
10012 y Fr(list)2624 10037 y Fm(2)2699 10012 y Fo(\))h
Fj(!)f Fr(list)3362 10511 y Fs(55)p eop end
%%Page: 56 64
TeXDict begin 56 63 bop 1511 1046 a Fj(\017)83 b Fo(\(list-merge!)102
b Fg(<)83 b Fr(list)3251 1071 y Fm(1)3409 1046 y Fr(list)3625
1071 y Fm(2)3700 1046 y Fo(\))g Fj(!)g Fr(list)1511 1245
y Fj(\017)g Fo(\(list-sort)i Fg(<)e Fr(lis)14 b Fo(\))83
b Fj(!)g Fr(list)1511 1445 y Fj(\017)g Fo(\(list-sort!)102
b Fg(<)83 b Fr(lis)14 b Fo(\))83 b Fj(!)g Fr(list)1511
1644 y Fj(\017)g Fo(\(list-stable-sort)j Fg(<)d Fr(list)16
b Fo(\))84 b Fj(!)f Fr(list)1511 1843 y Fj(\017)g Fo
(\(list-stable-sort!)103 b Fg(<)83 b Fr(list)16 b Fo(\))84
b Fj(!)f Fr(list)1511 2042 y Fj(\017)g Fo(\(list-delete-neighbor-dups)
88 b Fs(=)83 b Fr(list)16 b Fo(\))83 b Fj(!)g Fr(list)1511
2242 y Fj(\017)g Fo(\(vector-sorted?)103 b Fg(<)83 b
Fr(v)g([start)g([end]])17 b Fo(\))84 b Fj(!)f Fr(b)-8
b(o)g(ole)g(an)1511 2441 y Fj(\017)83 b Fo(\(vector-merge)i
Fg(<)e Fr(v)3181 2466 y Fm(1)3339 2441 y Fr(v)3415 2466
y Fm(2)3573 2441 y Fr([start)p Fs(1)g Fr([end)p Fs(1)h
Fr([start)p Fs(2)f Fr([end)p Fs(2)p Fr(]]]])17 b Fo(\))84
b Fj(!)f Fr(ve)-8 b(ctor)1511 2640 y Fj(\017)83 b Fo(\(vector-merge!)i
Fg(<)f Fr(v)f(v)3428 2665 y Fm(1)3586 2640 y Fr(v)3662
2665 y Fm(2)3820 2640 y Fr([start)g([start)p Fs(1)g Fr([end)p
Fs(1)h Fr([start)p Fs(2)f Fr([end)p Fs(2)p Fr(]]]]])17
b Fo(\))1511 2839 y Fj(\017)83 b Fo(\(vector-sort)i Fg(<)e
Fr(v)h([start)f([end]])17 b Fo(\))84 b Fj(!)f Fr(ve)-8
b(ctor)1511 3039 y Fj(\017)83 b Fo(\(vector-sort!)i Fg(<)e
Fr(v)h([start)f([end]])17 b Fo(\))1511 3238 y Fj(\017)83
b Fo(\(vector-stable-sort)j Fg(<)e Fr(v)f([start)g([end]])17
b Fo(\))84 b Fj(!)f Fr(ve)-8 b(ctor)1511 3437 y Fj(\017)83
b Fo(\(vector-stable-sort!)k Fg(<)c Fr(v)g([start)g([end]])17
b Fo(\))1511 3636 y Fj(\017)83 b Fo(\(vector-delete-neighbor-dups)88
b Fs(=)83 b Fr(v)g([start)h([end]])17 b Fo(\))84 b Fj(!)f
Fr(ve)-8 b(ctor)2253 4045 y Fs(Pro)5 b(cedure)1960 b(Suggested)56
b(algorithm)p 2153 4112 4378 7 v 2253 4251 a Fo(list-sort)1914
b Fs(v)-5 b(ector)54 b(heap)i(or)f(quic)-5 b(k)2253 4450
y Fo(list-sort!)1827 b Fs(list)55 b(merge)h(sort)2253
4650 y Fo(list-stable-sort)1305 b Fs(v)-5 b(ector)54
b(merge)i(sort)2253 4849 y Fo(list-stable-sort!)1218
b Fs(list)55 b(merge)h(sort)2253 5048 y Fo(vector-sort)1740
b Fs(heap)55 b(or)h(quic)-5 b(k)55 b(sort)2253 5247 y
Fo(vector-sort!)76 b Fs(or)55 b(quic)-5 b(k)55 b(sort)2253
5447 y Fo(vector-stable-sort)1131 b Fs(v)-5 b(ector)54
b(merge)i(sort)2253 5646 y Fo(vector-stable-sort!)77
b Fs(merge)55 b(sort)1478 6040 y Fo(List-Sorted?)85 b
Fs(and)60 b Fo(vector-sorted?)86 b Fs(return)58 b(true)g(if)h(their)f
(input)h(list)g(or)g(v)-5 b(ector)58 b(is)1478 6239 y(in)e(sorted)f
(order,)h(as)f(determined)h(b)-5 b(y)56 b(their)f Fg(<)g
Fs(comparison)i(parameter.)1727 6447 y(All)67 b(four)h(merge)f(op)5
b(erations)68 b(are)f(stable:)99 b(an)67 b(elemen)-5
b(t)68 b(of)f(the)g(initial)h(list)g Fr(list)6916 6472
y Fm(1)7058 6447 y Fs(or)1478 6647 y(v)-5 b(ector)64
b Fr(ve)-8 b(ctor)2416 6672 y Fm(1)2555 6647 y Fs(will)65
b(come)f(b)5 b(efore)64 b(an)h(equal-comparing)g(elemen)-5
b(t)65 b(in)g(the)f(second)h(list)1478 6846 y Fr(list)1694
6871 y Fm(2)1824 6846 y Fs(or)55 b(v)-5 b(ector)55 b
Fr(ve)-8 b(ctor)2956 6871 y Fm(2)3087 6846 y Fs(in)55
b(the)g(result.)1727 7054 y(The)g(pro)5 b(cedures)1727
7413 y Fj(\017)83 b Fo(list-merge)1727 7782 y Fj(\017)g
Fo(list-sort)1727 8150 y Fj(\017)g Fo(list-stable-sort)1727
8518 y Fj(\017)g Fo(list-delete-neighbor-dups)1478 8877
y Fs(do)44 b(not)g(alter)g(their)g(inputs)h(and)g(are)f(allo)-5
b(w)g(ed)45 b(to)f(return)g(a)g(v)-9 b(alue)44 b(that)g(shares)h(a)f
(common)1478 9077 y(tail)55 b(with)g(a)h(list)f(argumen)-5
b(t.)1727 9285 y(The)55 b(pro)5 b(cedure)1727 9644 y
Fj(\017)83 b Fo(list-sort!)1727 10012 y Fj(\017)g Fo(list-stable-sort!)
4259 10511 y Fs(56)p eop end
%%Page: 57 65
TeXDict begin 57 64 bop 581 1046 a Fs(are)57 b(\\linear)f(up)5
b(date")57 b(op)5 b(erators|they)56 b(are)g(allo)-5 b(w)g(ed,)58
b(but)f(not)f(required,)h(to)f(alter)g(the)581 1245 y(cons)g(cells)g
(of)f(their)g(argumen)-5 b(ts)57 b(to)d(pro)5 b(duce)56
b(their)f(results.)830 1445 y(On)40 b(the)f(other)g(hand,)k(the)c
Fo(list-merge!)71 b Fs(pro)5 b(cedure)39 b(mak)-5 b(e)39
b(only)h(a)f(single,)k(iterativ)-5 b(e,)581 1644 y(linear-time)64
b(pass)g(o)-5 b(v)g(er)63 b(its)g(argumen)-5 b(t)63 b(list,)j(using)g
Fo(set-cdr!)p Fs(s)f(to)d(rearrange)h(the)f(cells)581
1843 y(of)80 b(the)g(list)h(in)-5 b(to)80 b(the)g(\014nal)h(result)g
(|it)f(w)-5 b(orks)81 b(\\in)g(place.")148 b(Hence,)86
b(an)-5 b(y)81 b(cons)g(cell)581 2042 y(app)5 b(earing)61
b(in)g(the)g(result)g(m)-5 b(ust)61 b(ha)-5 b(v)g(e)61
b(originally)h(app)5 b(eared)60 b(in)h(an)g(input.)91
b(The)60 b(in)-5 b(ten)g(t)581 2242 y(of)63 b(this)h(iterativ)-5
b(e-algorithm)63 b(commitmen)-5 b(t)64 b(is)g(to)f(allo)-5
b(w)63 b(the)g(programmer)h(to)f(b)5 b(e)63 b(sure)581
2441 y(that)68 b(if,)k(for)c(example,)k Fo(list-merge!)115
b Fs(is)69 b(ask)-5 b(ed)69 b(to)f(merge)g(t)-5 b(w)g(o)69
b(ten-million-elemen)-5 b(t)581 2640 y(lists,)56 b(the)f(op)5
b(eration)55 b(will)g(complete)g(without)g(p)5 b(erforming)55
b(some)h(extremely)e(\(p)5 b(ossibly)581 2839 y(t)-5
b(w)g(en)g(t)g(y-million\))57 b(deep)e(recursion.)830
3039 y(The)h(v)-5 b(ector)54 b(pro)5 b(cedures)830 3339
y Fj(\017)83 b Fo(vector-sort)830 3655 y Fj(\017)g Fo
(vector-stable-sort)830 3971 y Fj(\017)g Fo
(vector-delete-neighbor-dups)581 4271 y Fs(do)63 b(not)f(alter)h(their)
f(inputs,)j(but)e(allo)5 b(cate)62 b(a)g(fresh)h(v)-5
b(ector)62 b(for)g(their)h(result,)h(of)f(length)581
4470 y Fr(end)55 b Fj(\000)37 b Fr(start)16 b Fs(.)830
4669 y(The)56 b(v)-5 b(ector)54 b(pro)5 b(cedures)830
4969 y Fj(\017)83 b Fo(vector-sort!)830 5285 y Fj(\017)g
Fo(vector-stable-sort!)581 5585 y Fs(sort)68 b(their)g(data)g
(in-place.)113 b(\(But)67 b(note)h(that)g Fo(vector-stable-sort!)115
b Fs(ma)-5 b(y)69 b(allo)5 b(cate)581 5785 y(temp)g(orary)55
b(storage)g(prop)5 b(ortional)56 b(to)f(the)g(size)g(of)g(the)g(input)h
(.\))830 5984 y Fo(Vector-merge)i Fs(returns)d(a)h(v)-5
b(ector)54 b(of)h(length)h(\()p Fr(end)4158 6009 y Fm(1)4269
5984 y Fj(\000)37 b Fr(start)4768 6009 y Fm(1)4880 5984
y Fs(+)g(\()p Fr(end)5365 6009 y Fm(2)5477 5984 y Fj(\000)g
Fr(start)5976 6009 y Fm(2)6050 5984 y Fs(\).)830 6183
y Fo(Vector-merge!)76 b Fs(writes)55 b(its)g(result)h(in)-5
b(to)55 b(v)-5 b(ector)54 b Fr(v)18 b Fs(,)56 b(b)5 b(eginning)55
b(at)g(index)g Fr(start)16 b Fs(,)55 b(for)581 6382 y(indices)49
b(less)g(than)g Fr(end)64 b Fs(=)46 b Fr(start)38 b Fs(+)23
b(\()p Fr(end)3134 6407 y Fm(1)3232 6382 y Fj(\000)g
Fr(start)3717 6407 y Fm(1)3791 6382 y Fs(\))g(+)g(\()p
Fr(end)4350 6407 y Fm(2)4446 6382 y Fj(\000)g Fr(start)4931
6407 y Fm(2)5006 6382 y Fs(\).)71 b(The)48 b(target)f(sub-)581
6582 y(v)-5 b(ector)41 b Fr(v)19 b Fs([)p Fr(start)d
Fg(;)28 b Fr(end)17 b Fs(\))42 b(ma)-5 b(y)42 b(not)g(o)-5
b(v)g(erlap)43 b(either)e(source)i(sub)-5 b(v)g(ector)42
b Fr(ve)-8 b(ctor)5313 6607 y Fm(1)5389 6582 y Fs([)p
Fr(start)5768 6607 y Fm(1)5842 6582 y Fg(;)28 b Fr(end)6170
6607 y Fm(1)6245 6582 y Fs(\))581 6781 y Fr(ve)-8 b(ctor)1011
6806 y Fm(2)1086 6781 y Fs([)p Fr(start)1465 6806 y Fm(2)1540
6781 y Fg(;)28 b Fr(end)1868 6806 y Fm(2)1943 6781 y
Fs(\).)830 6980 y(The)50 b Fo(...-delete-neighbor-dups-...)77
b Fs(pro)5 b(cedures:)72 b(These)51 b(pro)5 b(cedures)50
b(delete)581 7179 y(adjacen)-5 b(t)84 b(duplicate)g(elemen)-5
b(ts)85 b(from)f(a)g(list)g(or)g(a)g(v)-5 b(ector,)91
b(using)85 b(a)f(giv)-5 b(en)84 b(elemen)-5 b(t-)581
7379 y(equalit)g(y)74 b(pro)5 b(cedure.)130 b(The)74
b(\014rst/leftmost)g(elemen)-5 b(t)74 b(of)g(a)g(run)h(of)e(equal)h
(elemen)-5 b(ts)75 b(is)581 7578 y(the)55 b(one)h(that)e(surviv)-5
b(es.)75 b(The)55 b(list)h(or)f(v)-5 b(ector)55 b(is)h(not)f(otherwise)
h(disordered.)830 7777 y(These)37 b(pro)5 b(cedures)38
b(are)e(linear)i(time|m)-5 b(uc)g(h)38 b(faster)e(than)h(the)g
Fg(O)5 b Fs(\()p Fg(n)5099 7717 y Fm(2)5172 7777 y Fs(\))36
b(general)h(duplicate-)581 7976 y(elemen)-5 b(t)64 b(deletors)g(that)f
(do)h(not)f(assume)i(an)-5 b(y)64 b(\\bunc)-5 b(hing")66
b(of)d(elemen)-5 b(ts)64 b(\(suc)-5 b(h)65 b(as)f(the)581
8176 y(ones)48 b(pro)-5 b(vided)48 b(b)-5 b(y)47 b(SRFI)h(1\).)71
b(If)47 b(y)-5 b(ou)47 b(w)-5 b(an)g(t)48 b(to)f(delete)f(duplicate)h
(elemen)-5 b(ts)48 b(from)g(a)f(large)581 8375 y(list)53
b(or)f(v)-5 b(ector,)52 b(y)-5 b(ou)52 b(can)h(sort)f(the)g(elemen)-5
b(ts)52 b(to)g(bring)h(equal)f(items)g(together,)g(then)g(use)581
8574 y(one)k(of)f(these)g(pro)5 b(cedures,)56 b(for)f(a)g(total)g(time)
g(of)g Fg(O)5 b Fs(\()p Fg(n)28 b Fs(log)q(\()p Fg(n)p
Fs(\)\).)830 8773 y(The)64 b(comparison)i(pro)5 b(cedure)64
b(=)g(passed)i(to)d(these)h(pro)5 b(cedures)65 b(is)g(alw)-5
b(a)g(ys)65 b(applied)581 8973 y Fo(\()p Fs(=)88 b Fg(x)f(y)6
b Fo(\))56 b Fs(where)f Fg(x)g Fs(comes)h(b)5 b(efore)54
b Fg(y)62 b Fs(in)56 b(the)f(con)-5 b(taining)56 b(list)g(or)f(v)-5
b(ector.)830 9298 y Fj(\017)83 b Fo(List-delete-neighbor-dups)53
b Fs(do)5 b(es)48 b(not)g(alter)f(its)i(input)f(list;)j(its)d(answ)-5
b(er)49 b(ma)-5 b(y)996 9497 y(share)56 b(storage)g(with)f(the)g(input)
g(list.)830 9813 y Fj(\017)83 b Fo(Vector-delete-neighbor-dups)45
b Fs(do)5 b(es)40 b(not)g(alter)f(its)h(input)h(v)-5
b(ector,)42 b(but)e(rather)996 10012 y(allo)5 b(cates)55
b(a)h(fresh)f(v)-5 b(ector)55 b(to)g(hold)h(the)f(result.)3362
10511 y(57)p eop end
%%Page: 58 66
TeXDict begin 58 65 bop 1478 1046 a Fs(Examples:)1478
1478 y Fo(\(list-delete-neighbor-dups)91 b(=)d('\(1)f(1)h(2)f(7)h(7)f
(7)g(0)h(-2)f(-2\)\))1652 1677 y Fs(=)-27 b Fj(\))87
b Fo(\(1)g(2)h(7)f(0)g(-2\))1478 2076 y(\(vector-delete-neighbor-dups)
92 b(=)87 b('#\(1)h(1)f(2)h(7)f(7)g(7)h(0)f(-2)h(-2\)\))1652
2275 y Fs(=)-27 b Fj(\))87 b Fo(#\(1)h(2)f(7)g(0)h(-2\))1478
2674 y(\(vector-delete-neighbor-dups)k(=)87 b('#\(1)h(1)f(2)h(7)f(7)g
(7)h(0)f(-2)h(-2\))f(3)h(7\))1652 2873 y Fs(=)-27 b Fj(\))87
b Fo(#\(7)h(0)f(-2\))1478 3375 y Fp(Algorithm-sp)5 b(eci\014c)65
b(sorting)g(pac)-5 b(k)-11 b(ages)1478 3707 y Fs(These)47
b(pac)-5 b(k)c(ages)47 b(pro)-5 b(vide)48 b(more)f(sp)5
b(eci\014c)47 b(sorting)g(functionalit)-5 b(y)-14 b(,)49
b(that)d(is,)k(sp)5 b(eci\014c)47 b(com-)1478 3906 y(mittmen)-5
b(t)50 b(to)h(particular)f(algorithms)i(that)e(ha)-5
b(v)g(e)51 b(particular)g(pragmatic)g(consequences)1478
4105 y(\(suc)-5 b(h)58 b(as)g(memory)g(lo)5 b(calit)-5
b(y)-14 b(,)58 b(asymptotic)f(running)i(time\))e(b)5
b(ey)-5 b(ond)58 b(their)f(seman)-5 b(tic)58 b(b)5 b(e-)1478
4304 y(ha)-5 b(viour)59 b(\(sorting,)h(stable)g(sorting,)g(merging,)h
(etc.\).)83 b(Programmers)60 b(that)f(need)g(a)g(par-)1478
4504 y(ticular)c(algorithm)h(can)f(use)h(one)g(of)f(these)g(pac)-5
b(k)c(ages.)1478 5006 y Fo(sorted)p Fp(|sorted)65 b(predicates)1511
5378 y Fj(\017)83 b Fo(\(list-sorted?)102 b Fg(<)83 b
Fr(list)16 b Fo(\))84 b Fj(!)f Fr(b)-8 b(o)g(ole)g(an)1511
5577 y Fj(\017)83 b Fo(\(vector-sorted?)103 b Fg(<)83
b Fr(ve)-8 b(ctor)18 b Fo(\))84 b Fj(!)f Fr(b)-8 b(o)g(ole)g(an)1511
5777 y Fj(\017)83 b Fo(\(vector-sorted?)103 b Fg(<)83
b Fr(ve)-8 b(ctor)84 b(start)16 b Fo(\))83 b Fj(!)g Fr(b)-8
b(o)g(ole)g(an)1511 5976 y Fj(\017)83 b Fo(\(vector-sorted?)103
b Fg(<)83 b Fr(ve)-8 b(ctor)84 b(start)f(end)17 b Fo(\))84
b Fj(!)f Fr(b)-8 b(o)g(ole)g(an)1727 6348 y Fs(Return)59
b Fo(#f)h Fs(i\013)f(there)g(is)h(an)g(adjacen)-5 b(t)59
b(pair)h Fg(:)28 b(:)g(:)f(x;)h(y)34 b(:)28 b(:)g(:)59
b Fs(in)h(the)f(input)h(list)g(or)f(v)-5 b(ector)1478
6547 y(suc)g(h)38 b(that)e Fg(y)53 b(<)46 b(x)p Fs(.)68
b(The)36 b(optional)i Fr(start)16 b Fs(/)p Fr(end)54
b Fs(range)37 b(argumen)-5 b(ts)38 b(restrict)f Fo(vector-sorted?)1478
6747 y Fs(to)55 b(the)g(indicated)g(sub)-5 b(v)g(ector.)1478
7249 y Fo(list-merge-sort)p Fp(|list)67 b(merge)c(sort)1511
7621 y Fj(\017)83 b Fo(\(list-merge-sort)j Fg(<)d Fr(list)16
b Fo(\))83 b Fj(!)g Fr(list)1511 7820 y Fj(\017)g Fo
(\(list-merge-sort!)103 b Fg(<)83 b Fr(list)16 b Fo(\))83
b Fj(!)h Fr(list)1511 8020 y Fj(\017)f Fo(\(list-merge)i
Fr(list)2935 8045 y Fm(1)3093 8020 y Fg(<)e Fr(list)3521
8045 y Fm(2)3596 8020 y Fo(\))g Fj(!)g Fr(list)1511 8219
y Fj(\017)g Fo(\(list-merge!)102 b Fr(list)3039 8244
y Fm(1)3197 8219 y Fg(<)83 b Fr(list)3625 8244 y Fm(2)3700
8219 y Fo(\))g Fj(!)g Fr(list)1478 8591 y Fs(The)44 b(sort)g(pro)5
b(cedures)44 b(sort)g(their)g(data)g(using)h(a)f(list)g(merge)h(sort,)h
(whic)-5 b(h)45 b(is)f(stable.)71 b(\(The)1478 8790 y(reference)66
b(implemen)-5 b(tation)68 b(is,)j(additionally)-14 b(,)71
b(a)c(\\natural")h(sort.)109 b(See)67 b(b)5 b(elo)-5
b(w)68 b(for)f(the)1478 8989 y(prop)5 b(erties)55 b(of)g(this)h
(algorithm.\))1727 9202 y(The)43 b Fo(!)70 b Fs(pro)5
b(cedures)44 b(are)g(destructiv)-5 b(e|they)42 b(use)j
Fo(set-cdr!)p Fs(s)g(to)e(rearrange)h(the)f(cells)1478
9401 y(of)56 b(the)g(lists)i(in)-5 b(to)57 b(the)f(prop)5
b(er)56 b(order.)78 b(As)56 b(suc)-5 b(h,)59 b(they)c(do)i(not)g(allo)5
b(cate)55 b(an)-5 b(y)57 b(extra)f(cons)1478 9601 y(cells|they)f(are)g
(\\in)h(place")f(sorts.)1727 9813 y(The)73 b(merge)f(op)5
b(erations)73 b(are)g(stable:)109 b(an)73 b(elemen)-5
b(t)73 b(of)g Fr(list)5595 9838 y Fm(1)5742 9813 y Fs(will)g(come)g(b)5
b(efore)72 b(an)1478 10012 y(equal-comparing)56 b(elemen)-5
b(t)56 b(in)f Fr(list)3751 10037 y Fm(2)3882 10012 y
Fs(in)g(the)g(result)h(list.)4259 10511 y(58)p eop end
%%Page: 59 67
TeXDict begin 59 66 bop 581 1046 a Fo(vector-merge-sort)p
Fp(|v)-5 b(ector)66 b(merge)d(sort)614 1380 y Fj(\017)83
b Fo(\(vector-merge-sort)k Fg(<)c Fr(ve)-8 b(ctor)83
b([start)g([end)h([temp]]])17 b Fo(\))84 b Fj(!)f Fr(ve)-8
b(ctor)614 1579 y Fj(\017)83 b Fo(\(vector-merge-sort!)k
Fg(<)c Fr(ve)-8 b(ctor)84 b([start)f([end)g([temp]]])17
b Fo(\))614 1779 y Fj(\017)83 b Fo(\(vector-merge)j Fg(<)d
Fr(ve)-8 b(ctor)2639 1804 y Fm(1)2797 1779 y Fr(ve)g(ctor)3227
1804 y Fm(2)3385 1779 y Fr([start)3769 1804 y Fm(1)3927
1779 y Fr([end)4232 1804 y Fm(1)4390 1779 y Fr([start)4774
1804 y Fm(2)4931 1779 y Fr([end)5236 1804 y Fm(2)5311
1779 y Fr(]]]])17 b Fo(\))84 b Fj(!)f Fr(ve)-8 b(ctor)614
1978 y Fj(\017)83 b Fo(\(vector-merge!)j Fg(<)d Fr(ve)-8
b(ctor)84 b(ve)-8 b(ctor)3240 2003 y Fm(1)3398 1978 y
Fr(ve)g(ctor)3828 2003 y Fm(2)3986 1978 y Fr([start)83
b([start)4837 2003 y Fm(1)4995 1978 y Fr([end)5300 2003
y Fm(1)5458 1978 y Fr([start)5842 2003 y Fm(2)5999 1978
y Fr([end)6304 2003 y Fm(2)6379 1978 y Fr(]]]]])17 b
Fo(\))581 2312 y Fs(The)71 b(sort)g(pro)5 b(cedures)72
b(sort)f(their)g(data)g(using)h(v)-5 b(ector)70 b(merge)i(sort,)j(whic)
-5 b(h)72 b(is)f(stable.)581 2511 y(\(The)57 b(reference)g(implemen)-5
b(tation)59 b(is,)f(additionally)-14 b(,)59 b(a)f(\\natural")g(sort.)81
b(See)57 b(b)5 b(elo)-5 b(w)58 b(for)581 2710 y(the)d(prop)5
b(erties)55 b(of)h(this)f(algorithm.\))830 2910 y(The)83
b(optional)g Fr(start)16 b Fs(/)p Fr(end)101 b Fs(argumen)-5
b(ts)84 b(pro)-5 b(vide)83 b(for)g(sorting)g(of)g(subranges,)91
b(and)581 3109 y(default)55 b(to)g(0)h(and)f(the)g(length)h(of)f(the)g
(corresp)5 b(onding)56 b(v)-5 b(ector.)830 3309 y(Merge-sorting)45
b(a)f(v)-5 b(ector)43 b(requires)i(the)e(allo)5 b(cation)44
b(of)g(a)g(temp)5 b(orary)43 b(\\scratc)-5 b(h")45 b(w)-5
b(ork)581 3509 y(v)g(ector)54 b(for)g(the)f(duration)i(of)f(the)g
(sort.)73 b(This)55 b(scratc)-5 b(h)55 b(v)-5 b(ector)53
b(can)i(b)5 b(e)54 b(passed)h(in)g(b)-5 b(y)54 b(the)581
3708 y(clien)-5 b(t)56 b(as)h(the)e(optional)i Fr(temp)67
b Fs(argumen)-5 b(t;)57 b(if)f(so,)g(the)g(supplied)i(v)-5
b(ector)55 b(m)-5 b(ust)57 b(b)5 b(e)56 b(of)f(size)581
3907 y Fj(\024)64 b Fr(end)18 b Fs(,)69 b(and)e(will)f(not)g(b)5
b(e)66 b(altered)g(outside)g(the)g(range)g([start,end\).)106
b(If)66 b(not)g(supplied,)581 4106 y(the)55 b(sort)h(routines)f(allo)5
b(cate)55 b(one)g(themselv)-5 b(es.)830 4306 y(The)56
b(merge)h(op)5 b(erations)56 b(are)g(stable:)77 b(an)56
b(elemen)-5 b(t)56 b(of)h Fr(ve)-8 b(ctor)4764 4331 y
Fm(1)4895 4306 y Fs(will)57 b(come)f(b)5 b(efore)55 b(an)581
4506 y(equal-comparing)i(elemen)-5 b(t)55 b(in)h Fr(ve)-8
b(ctor)3069 4531 y Fm(2)3199 4506 y Fs(in)56 b(the)f(result)h(v)-5
b(ector.)830 4873 y Fj(\017)83 b Fo(Vector-merge-sort!)77
b Fs(lea)-5 b(v)g(es)56 b(its)g(result)f(in)h Fr(ve)-8
b(ctor)19 b Fs([)p Fr(start)d Fg(;)28 b Fr(end)17 b Fs(\).)830
5208 y Fj(\017)83 b Fo(Vector-merge-sort)59 b Fs(returns)c(a)h(v)-5
b(ector)54 b(of)h(length)h Fr(end)e Fj(\000)37 b Fr(start)16
b Fs(.)830 5543 y Fj(\017)83 b Fo(Vector-merge)53 b Fs(returns)e(a)g(v)
-5 b(ector)50 b(of)h(length)g(\()p Fr(end)4297 5568 y
Fm(1)4399 5543 y Fj(\000)28 b Fr(start)4889 5568 y Fm(1)4964
5543 y Fs(\))f(+)h(\()p Fr(end)5532 5568 y Fm(2)5634
5543 y Fj(\000)g Fr(start)6124 5568 y Fm(2)6199 5543
y Fs(\).)830 5877 y Fj(\017)83 b Fo(Vector-merge!)75
b Fs(writes)53 b(its)g(result)f(in)-5 b(to)53 b Fr(ve)-8
b(ctor)19 b Fs(,)53 b(b)5 b(eginning)53 b(at)f(index)h
Fr(start)16 b Fs(,)53 b(for)996 6077 y(indices)46 b(less)g(than)g
Fr(end)64 b Fs(=)46 b Fr(start)32 b Fs(+)17 b(\()p Fr(end)3528
6102 y Fm(1)3619 6077 y Fj(\000)g Fr(start)4098 6102
y Fm(1)4173 6077 y Fs(\))g(+)g(\()p Fr(end)4720 6102
y Fm(2)4810 6077 y Fj(\000)g Fr(start)5289 6102 y Fm(2)5363
6077 y Fs(\).)70 b(The)46 b(target)996 6276 y(sub)-5
b(v)g(ector)3026 6477 y Fr(ve)d(ctor)19 b Fs([)p Fr(start)d
Fg(;)28 b Fr(end)17 b Fs(\))996 6778 y(ma)-5 b(y)56 b(not)f(o)-5
b(v)g(erlap)56 b(either)f(source)h(sub)-5 b(v)g(ector)2037
7144 y Fr(ve)d(ctor)2467 7169 y Fm(1)2542 7144 y Fs([)p
Fr(start)2921 7169 y Fm(1)2996 7144 y Fg(;)28 b Fr(end)3324
7169 y Fm(1)3399 7144 y Fs(\))p Fg(;)83 b Fs(or)55 b
Fr(ve)-8 b(ctor)4226 7169 y Fm(2)4301 7144 y Fs([)p Fr(start)4680
7169 y Fm(2)4755 7144 y Fg(;)28 b Fr(end)5083 7169 y
Fm(2)5158 7144 y Fs(\))p Fg(:)581 7579 y Fo(vector-heap-sort)p
Fp(|v)-5 b(ector)66 b(heap)d(sort)614 7913 y Fj(\017)83
b Fo(\(vector-heap-sort)j Fg(<)e Fr(ve)-8 b(ctor)83 b([start)g([end]])
17 b Fo(\))84 b Fj(!)f Fr(ve)-8 b(ctor)614 8112 y Fj(\017)83
b Fo(\(vector-heap-sort!)k Fg(<)c Fr(ve)-8 b(ctor)83
b([start)g([end]])17 b Fo(\))581 8446 y Fs(These)58 b(pro)5
b(cedures)59 b(sort)f(their)g(data)g(using)h(heap)f(sort,)h(whic)-5
b(h)59 b(is)g(not)f(a)g(stable)g(sorting)581 8645 y(algorithm.)830
8845 y Fo(Vector-heap-sort)40 b Fs(returns)d(a)g(v)-5
b(ector)36 b(of)h(length)g Fr(end)18 b Fj(\000)p Fr(start)e
Fs(.)67 b Fo(Vector-heap-sort!)581 9044 y Fs(is)56 b(in-place,)g(lea)-5
b(ving)56 b(its)g(result)f(in)h Fr(ve)-8 b(ctor)18 b
Fs([)p Fr(start)e Fg(;)28 b Fr(end)18 b Fs(\).)581 9479
y Fo(vector-insert-sort)p Fp(|v)-5 b(ector)66 b(insertion)e(sort)614
9813 y Fj(\017)83 b Fo(\(vector-insert-sort)k Fg(<)c
Fr(ve)-8 b(ctor)84 b([start)f([end]])17 b Fo(\))84 b
Fj(!)f Fr(ve)-8 b(ctor)614 10012 y Fj(\017)83 b Fo
(\(vector-insert-sort!)k Fg(<)c Fr(ve)-8 b(ctor)84 b([start)f([end]])17
b Fo(\))3362 10511 y Fs(59)p eop end
%%Page: 60 68
TeXDict begin 60 67 bop 1478 1046 a Fs(These)55 b(pro)5
b(cedures)56 b(stably)g(sort)f(their)g(data)g(using)i(insertion)f
(sort.)1727 1382 y Fj(\017)83 b Fo(Vector-insert-sort)58
b Fs(returns)e(a)f(v)-5 b(ector)55 b(of)g(length)h Fr(end)e
Fj(\000)37 b Fr(start)16 b Fs(.)1727 1719 y Fj(\017)83
b Fo(Vector-insert-sort!)77 b Fs(is)56 b(in-place,)g(lea)-5
b(ving)56 b(its)f(result)h(in)g Fr(ve)-8 b(ctor)18 b
Fs([)p Fr(start)e Fg(;)28 b Fr(end)18 b Fs(\).)1478 2158
y Fo(delete-neighbor-duplicates)p Fp(|list)101 b(and)c(v)-5
b(ector)95 b(delete)h(neigh)-5 b(b)5 b(or)96 b(dupli-)1478
2357 y(cates)1511 2693 y Fj(\017)83 b Fo(\(list-delete-neighbor-dups)88
b Fs(=)83 b Fr(list)16 b Fo(\))83 b Fj(!)g Fr(list)1511
2892 y Fj(\017)g Fo(\(list-delete-neighbor-dups!)105
b Fs(=)83 b Fr(list)16 b Fo(\))83 b Fj(!)g Fr(list)1511
3091 y Fj(\017)g Fo(\(vector-delete-neighbor-dups)88
b Fs(=)83 b Fr(ve)-8 b(ctor)84 b([start)f([end]])17 b
Fo(\))84 b Fj(!)f Fr(ve)-8 b(ctor)1511 3290 y Fj(\017)83
b Fo(\(vector-delete-neighbor-dups!)105 b Fs(=)83 b Fr(ve)-8
b(ctor)84 b([start)f([end]])17 b Fo(\))84 b Fj(!)f Fr(end)6596
3230 y Fh(0)1478 3626 y Fs(These)76 b(pro)5 b(cedures)77
b(delete)e(adjacen)-5 b(t)76 b(duplicate)h(elemen)-5
b(ts)76 b(from)h(a)f(list)g(or)h(a)f(v)-5 b(ector,)1478
3826 y(using)48 b(a)f(giv)-5 b(en)47 b(elemen)-5 b(t-equalit)g(y)47
b(pro)5 b(cedure)46 b(=.)72 b(The)46 b(\014rst/leftmost)h(elemen)-5
b(t)47 b(of)g(a)g(run)1478 4025 y(of)64 b(equal)f(elemen)-5
b(ts)65 b(is)g(the)e(one)i(that)e(surviv)-5 b(es.)101
b(The)64 b(list)g(or)g(v)-5 b(ector)64 b(is)g(not)g(otherwise)1478
4224 y(disordered.)1727 4425 y(These)37 b(pro)5 b(cedures)37
b(are)g(linear)g(time|m)-5 b(uc)g(h)38 b(faster)f(than)g(the)g
Fg(O)5 b Fs(\()p Fg(n)5996 4364 y Fm(2)6069 4425 y Fs(\))36
b(general)h(duplicate-)1478 4624 y(elemen)-5 b(t)64 b(deletors)f(that)g
(do)h(not)g(assume)h(an)-5 b(y)64 b(\\bunc)-5 b(hing")65
b(of)f(elemen)-5 b(ts)64 b(\(suc)-5 b(h)64 b(as)h(the)1478
4823 y(ones)48 b(pro)-5 b(vided)47 b(b)-5 b(y)48 b(SRFI)g(1\).)71
b(If)46 b(y)-5 b(ou)48 b(w)-5 b(an)g(t)48 b(to)e(delete)h(duplicate)g
(elemen)-5 b(ts)48 b(from)f(a)g(large)1478 5022 y(list)52
b(or)g(v)-5 b(ector,)53 b(y)-5 b(ou)52 b(can)g(sort)g(the)g(elemen)-5
b(ts)53 b(to)f(bring)g(equal)g(items)h(together,)f(then)g(use)1478
5222 y(one)j(of)g(these)h(pro)5 b(cedures,)55 b(for)h(a)f(total)g(time)
g(of)g Fg(O)5 b Fs(\()p Fg(n)28 b Fs(log)q(\()p Fg(n)p
Fs(\)\).)1727 5422 y(The)55 b(comparison)i(pro)5 b(cedure)55
b(=)h(passed)g(to)f(these)g(pro)5 b(cedures)56 b(is)g(alw)-5
b(a)g(ys)56 b(applied)1478 5794 y Fo(\()p Fs(=)87 b Fg(x)g(y)6
b Fo(\))1727 6164 y Fs(where)55 b Fg(x)g Fs(comes)h(b)5
b(efore)55 b Fg(y)61 b Fs(in)56 b(the)f(con)-5 b(taining)56
b(list)g(or)f(v)-5 b(ector.)1727 6500 y Fj(\017)83 b
Fo(List-delete-neighbor-dups)52 b Fs(do)5 b(es)49 b(not)e(alter)h(its)g
(input)h(list;)i(its)d(answ)-5 b(er)49 b(ma)-5 b(y)1893
6699 y(share)56 b(storage)f(with)g(the)g(input)h(list.)1727
7037 y Fj(\017)83 b Fo(Vector-delete-neighbor-dups)44
b Fs(do)5 b(es)41 b(not)e(alter)h(its)g(input)g(v)-5
b(ector,)43 b(but)d(rather)1893 7236 y(allo)5 b(cates)55
b(a)g(fresh)h(v)-5 b(ector)54 b(to)h(hold)h(the)f(result.)1727
7573 y Fj(\017)83 b Fo(List-delete-neighbor-dups!)77
b Fs(is)52 b(p)5 b(ermitted,)52 b(but)f(not)h(required,)g(to)f(m)-5
b(utate)1893 7772 y(its)55 b(input)h(list)g(in)g(order)f(to)g
(construct)g(its)h(answ)-5 b(er.)1727 8109 y Fj(\017)83
b Fo(Vector-delete-neighbor-dups!)92 b Fs(reuses)61 b(its)f(input)h(v)
-5 b(ector)59 b(to)h(hold)g(the)g(an-)1893 8309 y(sw)-5
b(er,)66 b(pac)-5 b(king)64 b(its)g(answ)-5 b(er)65 b(in)-5
b(to)64 b(the)f(index)g(range)h([)p Fr(start)16 b Fg(;)28
b Fr(end)6018 8248 y Fh(0)6065 8309 y Fs(\),)66 b(where)d
Fr(end)6984 8248 y Fh(0)7095 8309 y Fs(is)1893 8508 y(the)52
b(non-negativ)-5 b(e)53 b(exact)f(in)-5 b(teger)52 b(returned)h(as)g
(its)g(v)-9 b(alue.)72 b(It)52 b(returns)h Fr(end)6729
8448 y Fh(0)6829 8508 y Fs(as)g(its)1893 8707 y(result.)74
b(The)55 b(v)-5 b(ector)55 b(is)h(not)f(altered)g(outside)h(the)f
(range)g([)p Fr(start)16 b Fg(;)28 b Fr(end)6310 8647
y Fh(0)6357 8707 y Fs(\).)1478 9043 y(Examples:)1478
9415 y Fo(\(list-delete-neighbor-dups)91 b(=)d('\(1)f(1)h(2)f(7)h(7)f
(7)g(0)h(-2)f(-2\)\))1652 9614 y Fs(=)-27 b Fj(\))87
b Fo(\(1)g(2)h(7)f(0)g(-2\))1478 10012 y(\(vector-delete-neighbor-dups)
92 b(=)87 b('#\(1)h(1)f(2)h(7)f(7)g(7)h(0)f(-2)h(-2\)\))4259
10511 y Fs(60)p eop end
%%Page: 61 69
TeXDict begin 61 68 bop 755 1046 a Fs(=)-27 b Fj(\))87
b Fo(#\(1)h(2)f(7)h(0)f(-2\))581 1445 y(\(vector-delete-neighbor-dups)
92 b(=)87 b('#\(1)h(1)g(2)f(7)g(7)h(7)f(0)g(-2)h(-2\))g(3)f(7\))755
1644 y Fs(=)-27 b Fj(\))87 b Fo(#\(7)h(0)f(-2\))581 2042
y(;;)h(Result)g(left)g(in)f(v[3,9\):)581 2242 y(\(let)h(\(\(v)g
(\(vector)g(0)f(0)h(0)f(1)g(1)h(2)f(2)g(3)h(3)f(4)h(4)f(5)g(5)h(6)f
(6\)\)\))755 2441 y(\(cons)i(\(vector-delete-neighbor-dups!)j(=)87
b(v)g(3\))1279 2640 y(v\)\))843 2839 y Fs(=)-28 b Fj(\))87
b Fo(\(9)h(.)f(#\(0)h(0)f(0)h(1)f(2)g(3)h(4)f(5)g(6)h(4)f(4)g(5)h(5)f
(6)g(6\)\))581 3259 y(binary-searches)p Fp(|v)-5 b(ector)66
b(binary)d(searc)-5 b(h)614 3535 y Fj(\017)83 b Fo
(\(vector-binary-search)k Fg(<)c Fr(elt-)p Fg(>)p Fr(key)i(key)f(ve)-8
b(ctor)83 b([start)g([end]])17 b Fo(\))84 b Fj(!)f Fr(inte)-8
b(ger)85 b(or)d Fo(#f)614 3734 y Fj(\017)h Fo(\(vector-binary-search3)k
Fr(c)-8 b(omp)g(ar)g(e-pr)g(o)g(c)82 b(ve)-8 b(ctor)83
b([start)g([end]])17 b Fo(\))84 b Fj(!)f Fr(inte)-8 b(ger)84
b(or)f Fo(#f)830 4010 y(vector-binary-search)57 b Fs(searc)-5
b(hes)54 b Fr(ve)-8 b(ctor)72 b Fs(in)53 b(range)g([)p
Fr(start)16 b Fg(;)28 b Fr(end)18 b Fs(\))53 b(\(whic)-5
b(h)53 b(default)581 4209 y(to)75 b(0)f(and)i(the)e(length)h(of)g
Fr(ve)-8 b(ctor)18 b Fs(,)80 b(resp)5 b(ectiv)-5 b(ely\))74
b(for)g(an)h(elemen)-5 b(t)75 b(whose)g(asso)5 b(ciated)581
4408 y(k)-5 b(ey)63 b(is)h(equal)f(to)f Fr(key)15 b Fs(.)98
b(The)63 b(pro)5 b(cedure)63 b Fr(elt-)p Fg(>)p Fr(key)80
b Fs(is)63 b(used)h(to)f(map)h(an)f(elemen)-5 b(t)64
b(to)e(its)581 4607 y(asso)5 b(ciated)54 b(k)-5 b(ey)-14
b(.)73 b(The)53 b(elemen)-5 b(ts)54 b(of)g(the)f(v)-5
b(ector)52 b(are)i(assumed)h(to)e(b)5 b(e)53 b(ordered)h(b)-5
b(y)53 b(the)h Fg(<)581 4807 y Fs(relation)h(on)h(these)f(k)-5
b(eys.)74 b(That)55 b(is,)581 5102 y Fo(\(vector-sorted?)90
b(\(lambda)e(\(x)g(y\))f(\()p Fg(<)h Fo(\()p Fr(elt-)p
Fg(>)p Fr(key)104 b Fo(x\))87 b(\()p Fr(elt-)p Fg(>)p
Fr(key)104 b Fo(y\)\)\))1976 5301 y Fr(ve)-8 b(ctor)106
b(start)d(end)17 b Fo(\))88 b Fs(=)-28 b Fj(\))87 b Fo(true)830
5596 y Fs(An)49 b(elemen)-5 b(t)49 b Fr(e)62 b Fs(of)49
b Fr(ve)-8 b(ctor)68 b Fs(is)50 b(a)f(matc)-5 b(h)49
b(for)g Fr(key)64 b Fs(if)49 b(it's)h(neither)f(less)h(nor)f(greater)g
(than)581 5795 y(the)55 b(k)-5 b(ey:)581 6090 y Fo(\(and)88
b(\(not)g(\()p Fg(<)f Fo(\()p Fr(elt-)p Fg(>)p Fr(key)104
b(e)13 b Fo(\))88 b Fr(key)15 b Fo(\)\))1017 6289 y(\(not)88
b(\()p Fg(<)f Fr(key)103 b Fo(\()p Fr(elt-)p Fg(>)p Fr(key)h(e)12
b Fo(\)\)\)\))830 6584 y Fs(If)57 b(there)f(is)h(suc)-5
b(h)58 b(an)f(elemen)-5 b(t,)58 b(the)e(pro)5 b(cedure)57
b(returns)g(its)g(index)g(in)g(the)f(v)-5 b(ector)56
b(as)581 6783 y(an)42 b(exact)e(in)-5 b(teger.)70 b(If)41
b(there)g(is)h(no)g(suc)-5 b(h)43 b(elemen)-5 b(t)42
b(in)f(the)h(searc)-5 b(hed)42 b(range,)j(the)c(pro)5
b(cedure)581 6983 y(returns)56 b(false.)581 7278 y Fo
(\(vector-binary-search)91 b(<)c(car)h(4)f('#\(\(1)h(.)g(one\))g(\(3)f
(.)g(three\))3458 7477 y(\(4)g(.)h(four\))g(\(25)f(.)h
(twenty-five\)\)\))581 7676 y Fs(=)-27 b Fj(\))87 b Fo(2)581
8075 y(\(vector-binary-search)k(<)c(car)h(7)f('#\(\(1)h(.)g(one\))g
(\(3)f(.)g(three\))3458 8274 y(\(4)g(.)h(four\))g(\(25)f(.)h
(twenty-five\)\)\))581 8473 y Fs(=)-27 b Fj(\))87 b Fo(#f)830
8768 y(Vector-binary-search3)52 b Fs(is)e(a)e(v)-9 b(arian)k(t)49
b(that)f(uses)i(a)e(three-w)-5 b(a)g(y)49 b(comparison)h(pro-)581
8967 y(cedure)59 b Fr(c)-8 b(omp)g(ar)g(e-pr)g(o)g(c)8
b Fs(.)84 b Fr(Comp)-8 b(ar)g(e-pr)g(o)g(c)67 b Fs(compares)59
b(its)g(parameter)g(to)g(the)f(searc)-5 b(h)60 b(k)-5
b(ey)-14 b(,)581 9167 y(and)57 b(returns)g(an)g(exact)e(in)-5
b(teger)57 b(whose)g(sign)g(indicates)g(its)g(relationship)h(to)e(the)g
(searc)-5 b(h)581 9366 y(k)g(ey)-14 b(.)1653 9554 y(\()p
Fr(c)-8 b(omp)g(ar)g(e-pr)g(o)g(c)63 b Fg(x)p Fs(\))165
b Fg(<)h Fs(0)h Fj(\))f Fg(x)g(<)g Fr(se)-8 b(ar)g(ch-key)1653
9753 y Fs(\()p Fr(c)g(omp)g(ar)g(e-pr)g(o)g(c)63 b Fg(x)p
Fs(\))165 b(=)h(0)h Fj(\))f Fg(x)g Fs(=)g Fr(se)-8 b(ar)g(ch-key)1653
9953 y Fs(\()p Fr(c)g(omp)g(ar)g(e-pr)g(o)g(c)63 b Fg(x)p
Fs(\))165 b Fg(>)h Fs(0)h Fj(\))f Fg(x)g(>)g Fr(se)-8
b(ar)g(ch-key)3362 10511 y Fs(61)p eop end
%%Page: 62 70
TeXDict begin 62 69 bop 1478 1046 a Fo(\(vector-binary-search3)91
b(\(lambda)d(\(elt\))g(\(-)g(\(car)g(elt\))f(4\)\))3483
1245 y('#\(\(1)h(.)f(one\))h(\(3)g(.)f(three\))3744 1445
y(\(4)h(.)f(four\))h(\(25)g(.)f(twenty-five\)\)\))1478
1644 y Fs(=)-28 b Fj(\))87 b Fo(2)1478 2105 y Ff(5.19.3)225
b(Algorithmic)74 b(prop)6 b(erties)1478 2411 y Fs(Di\013eren)-5
b(t)52 b(sort)g(and)h(merge)g(algorithms)g(ha)-5 b(v)g(e)53
b(di\013eren)-5 b(t)52 b(prop)5 b(erties.)73 b(Cho)5
b(ose)53 b(the)f(algo-)1478 2610 y(rithm)j(that)g(matc)-5
b(hes)56 b(y)-5 b(our)56 b(needs:)1478 2953 y Fp(V)-16
b(ector)64 b(insert)f(sort)84 b Fs(Stable,)55 b(but)h(only)f(suitable)h
(for)f(small)i(v)-5 b(ectors|)p Fg(O)5 b Fs(\()p Fg(n)6538
2892 y Fm(2)6611 2953 y Fs(\).)1478 3275 y Fp(V)-16 b(ector)64
b(heap)f(sort)84 b Fs(Not)42 b(stable.)70 b(Guaran)-5
b(teed)44 b(fast|)p Fg(O)5 b Fs(\()p Fg(n)28 b Fs(log\()p
Fg(n)p Fs(\)\))42 b Fr(worst)59 b Fs(case.)70 b(P)-5
b(o)5 b(or)1893 3475 y(lo)g(calit)-5 b(y)55 b(on)g(large)h(v)-5
b(ectors.)73 b(A)55 b(v)-5 b(ery)55 b(reliable)h(w)-5
b(orkhorse.)1478 3798 y Fp(V)-16 b(ector)64 b(merge)f(sort)83
b Fs(Stable.)68 b(Not)37 b(in-place|requires)h(a)f(temp)5
b(orary)37 b(bu\013er)g(of)g(equal)1893 3997 y(size.)74
b(F)-14 b(ast|)p Fg(O)5 b Fs(\()p Fg(n)28 b Fs(log)q(\()p
Fg(n)p Fs(\)\)|and)54 b(has)h(go)5 b(o)g(d)55 b(memory)g(lo)5
b(calit)-5 b(y)54 b(for)h(large)f(v)-5 b(ectors.)1893
4258 y(The)45 b(implemen)-5 b(tation)46 b(of)f(v)-5 b(ector)45
b(merge)g(sort)g(pro)-5 b(vided)46 b(b)-5 b(y)46 b(this)f(implemen)-5
b(tation)1893 4457 y(is,)66 b(additionally)-14 b(,)66
b(a)e(\\natural")f(sort,)j(meaning)e(that)f(it)g(exploits)h(existing)f
(order)1893 4656 y(in)56 b(the)f(input)g(data,)h(pro)-5
b(viding)56 b Fg(O)5 b Fs(\()p Fg(n)p Fs(\))54 b(b)5
b(est)55 b(case.)1478 4979 y Fp(Destructiv)-5 b(e)63
b(list)h(merge)f(sort)84 b Fs(Stable,)58 b(fast)f(and)h(in-place)h
(\(i.e.,)e(allo)5 b(cates)58 b(no)f(new)1893 5178 y(cons)46
b(cells\).)71 b(\\F)-14 b(ast")47 b(means)g Fg(O)5 b
Fs(\()p Fg(n)28 b Fs(log\()p Fg(n)p Fs(\)\))45 b(w)-5
b(orse-case,)49 b(and)d(substan)-5 b(tially)48 b(b)5
b(etter)1893 5378 y(if)57 b(the)f(data)h(is)h(already)f(mostly)g
(ordered,)h(all)f(the)g(w)-5 b(a)g(y)57 b(do)-5 b(wn)58
b(to)e(linear)i(time)f(for)1893 5577 y(a)e(completely-ordered)h(input)f
(list)h(\(i.e.,)f(it)g(is)h(a)g(\\natural")f(sort\).)1893
5838 y(Note)63 b(that)h(sorting)h(lists)h(in)-5 b(v)g(olv)g(es)65
b(c)-5 b(hasing)66 b(p)5 b(oin)-5 b(ters)65 b(through)g(memory)-14
b(,)68 b(whic)-5 b(h)1893 6037 y(can)45 b(b)5 b(e)45
b(a)h(loser)f(on)h(mo)5 b(dern)46 b(mac)-5 b(hine)46
b(arc)-5 b(hitectures)45 b(b)5 b(ecause)45 b(of)h(p)5
b(o)g(or)44 b(cac)-5 b(he)46 b(and)1893 6237 y(page)55
b(lo)5 b(calit)-5 b(y)-14 b(.)74 b(Sorting)55 b(v)-5
b(ectors)56 b(has)g(inheren)-5 b(tly)55 b(b)5 b(etter)54
b(lo)5 b(calit)-5 b(y)-14 b(.)1893 6498 y(This)53 b(implemen)-5
b(tation's)54 b(destructiv)-5 b(e)52 b(list)g(merge)h(and)f(merge)h
(sort)f(implemen)-5 b(ta-)1893 6697 y(tions)47 b(are)f(opp)5
b(ortunistic|they)46 b(a)-5 b(v)g(oid)47 b(redundan)-5
b(t)47 b Fo(set-cdr!)p Fs(s,)k(and)46 b(try)g(to)g(tak)-5
b(e)1893 6896 y(long)56 b(already-ordered)f(runs)i(of)e(list)h
(structure)f(as-is)i(when)e(doing)h(the)f(merges.)1478
7219 y Fp(Pure)62 b(list)j(merge)d(sort)84 b Fs(Stable)68
b(and)g(fast|)p Fg(O)5 b Fs(\()p Fg(n)28 b Fs(log)q(\()p
Fg(n)p Fs(\)\))66 b(w)-5 b(orst-case,)72 b(and)c(p)5
b(ossibly)1893 7418 y Fg(O)g Fs(\()p Fg(n)p Fs(\),)53
b(dep)5 b(ending)56 b(up)5 b(on)56 b(the)f(input)h(list)g(\(see)f
(discussion)i(ab)5 b(o)-5 b(v)g(e\).)2026 7759 y(Algorithm)416
b(Stable?)200 b(W)-14 b(orst)55 b(case)244 b(Av)-5 b(erage)55
b(case)199 b(In-place)p 1926 7825 4833 7 v 2026 7965
a(V)-14 b(ector)54 b(insert)226 b(Y)-14 b(es)480 b Fg(O)5
b Fs(\()p Fg(n)4212 7904 y Fm(2)4285 7965 y Fs(\))595
b Fg(O)5 b Fs(\()p Fg(n)5242 7904 y Fm(2)5315 7965 y
Fs(\))702 b(Y)-14 b(es)2026 8164 y(V)g(ector)54 b(quic)-5
b(k)250 b(No)522 b Fg(O)5 b Fs(\()p Fg(n)4212 8104 y
Fm(2)4285 8164 y Fs(\))595 b Fg(O)5 b Fs(\()p Fg(n)28
b Fs(log)q(\()p Fg(n)p Fs(\)\))304 b(Y)-14 b(es)2026
8363 y(V)g(ector)54 b(heap)292 b(No)522 b Fg(O)5 b Fs(\()p
Fg(n)28 b Fs(log\()p Fg(n)p Fs(\)\))198 b Fg(O)5 b Fs(\()p
Fg(n)28 b Fs(log)q(\()p Fg(n)p Fs(\)\))304 b(Y)-14 b(es)2026
8562 y(V)g(ector)54 b(merge)199 b(Y)-14 b(es)480 b Fg(O)5
b Fs(\()p Fg(n)28 b Fs(log\()p Fg(n)p Fs(\)\))198 b Fg(O)5
b Fs(\()p Fg(n)28 b Fs(log)q(\()p Fg(n)p Fs(\)\))304
b(No)2026 8762 y(List)55 b(merge)390 b(Y)-14 b(es)480
b Fg(O)5 b Fs(\()p Fg(n)28 b Fs(log\()p Fg(n)p Fs(\)\))198
b Fg(O)5 b Fs(\()p Fg(n)28 b Fs(log)q(\()p Fg(n)p Fs(\)\))304
b(Either)1478 9250 y Fl(5.20)270 b(Regular)89 b(expressions)1478
9614 y Fs(This)46 b(section)f(describ)5 b(es)46 b(a)f(functional)g(in)
-5 b(terface)45 b(for)g(building)i(regular)e(expressions)i(and)1478
9813 y(matc)-5 b(hing)53 b(them)g(against)g(strings.)74
b(The)53 b(matc)-5 b(hing)54 b(is)f(done)g(using)h(the)e(POSIX)h
(regular)1478 10012 y(expression)j(pac)-5 b(k)c(age.)74
b(Regular)55 b(expressions)i(are)e(in)h(the)f(structure)g
Fo(regexps)p Fs(.)4259 10511 y(62)p eop end
%%Page: 63 71
TeXDict begin 63 70 bop 830 1046 a Fs(A)58 b(regular)g(expression)h(is)
f(either)g(a)f(c)-5 b(haracter)58 b(set,)h(whic)-5 b(h)58
b(matc)-5 b(hes)59 b(an)-5 b(y)58 b(c)-5 b(haracter)581
1245 y(in)72 b(the)f(set,)k(or)c(a)h(comp)5 b(osite)71
b(expression)h(con)-5 b(taining)72 b(one)g(or)f(more)h(sub)5
b(expressions.)581 1445 y(A)64 b(regular)h(expression)h(can)e(b)5
b(e)64 b(matc)-5 b(hed)65 b(against)h(a)e(string)h(to)f(determine)h
(success)h(or)581 1644 y(failure,)56 b(and)g(to)f(determine)g(the)g
(substrings)i(matc)-5 b(hed)56 b(b)-5 b(y)56 b(particular)f(sub)5
b(expressions.)581 2109 y Ff(5.20.1)225 b(Character)73
b(sets)581 2415 y Fs(Character)e(sets)h(ma)-5 b(y)72
b(b)5 b(e)72 b(de\014ned)g(using)h(a)e(list)h(of)g(c)-5
b(haracters)72 b(and)g(strings,)77 b(using)c(a)581 2614
y(range)62 b(or)g(ranges)g(of)g(c)-5 b(haracters,)63
b(or)f(b)-5 b(y)62 b(using)h(set)e(op)5 b(erations)62
b(on)g(existing)g(c)-5 b(haracter)581 2814 y(sets.)614
3113 y Fj(\017)83 b Fo(\(set)h Fr(char)-8 b(acter-or-string)85
b(.)25 b(.)g(.)g Fo(\))103 b Fj(!)83 b Fr(char-set)614
3312 y Fj(\017)g Fo(\(range)h Fr(low-char)h(high-char)18
b Fo(\))83 b Fj(!)g Fr(char-set)614 3511 y Fj(\017)g
Fo(\(ranges)i Fr(low-char)f(high-char)f(.)25 b(.)g(.)g
Fo(\))103 b Fj(!)83 b Fr(char-set)614 3710 y Fj(\017)g
Fo(\(ascii-range)i Fr(low-char)g(high-char)18 b Fo(\))83
b Fj(!)g Fr(char-set)614 3910 y Fj(\017)g Fo(\(ascii-ranges)j
Fr(low-char)e(high-char)f(.)25 b(.)g(.)g Fo(\))103 b
Fj(!)83 b Fr(char-set)581 4208 y Fo(Set)62 b Fs(returns)g(a)f(set)g
(that)g(con)-5 b(tains)62 b(the)f(c)-5 b(haracter)61
b(argumen)-5 b(ts)63 b(and)f(the)f(c)-5 b(haracters)61
b(in)581 4408 y(an)-5 b(y)53 b(string)g(argumen)-5 b(ts.)74
b Fo(Range)54 b Fs(returns)f(a)f(c)-5 b(haracter)52 b(set)h(that)f(con)
-5 b(tain)53 b(all)f(c)-5 b(haracters)581 4607 y(b)5
b(et)-5 b(w)g(een)59 b Fr(low-char)77 b Fs(and)60 b Fr(high-char)18
b Fs(,)60 b(inclusiv)-5 b(e.)85 b Fo(Ranges)60 b Fs(returns)f(a)g(set)g
(that)f(con)-5 b(tains)581 4806 y(all)58 b(c)-5 b(haracters)57
b(in)h(the)f(giv)-5 b(en)57 b(ranges.)81 b Fo(Range)58
b Fs(and)g Fo(ranges)g Fs(use)g(the)f(ordering)h(induced)581
5005 y(b)-5 b(y)65 b Fo(char->integer)p Fs(.)96 b Fo(Ascii-range)64
b Fs(and)f Fo(ascii-ranges)h Fs(use)f(the)f(ASCI)5 b(I)61
b(ordering.)581 5205 y(It)77 b(is)i(an)f(error)g(for)f(a)h
Fr(high-char)96 b Fs(to)77 b(b)5 b(e)78 b(less)h(than)e(the)h
(preceding)i Fr(low-char)97 b Fs(in)78 b(the)581 5404
y(appropriate)56 b(ordering.)614 5703 y Fj(\017)83 b
Fo(\(negate)i Fr(char-set)16 b Fo(\))84 b Fj(!)f Fr(char-set)614
5902 y Fj(\017)g Fo(\(intersection)j Fr(char-set)e(char-set)16
b Fo(\))84 b Fj(!)f Fr(char-set)614 6101 y Fj(\017)g
Fo(\(union)h Fr(char-set)g(char-set)16 b Fo(\))84 b Fj(!)f
Fr(char-set)614 6301 y Fj(\017)g Fo(\(subtract)i Fr(char-set)f
(char-set)16 b Fo(\))84 b Fj(!)f Fr(char-set)581 6599
y Fs(These)56 b(p)5 b(erform)55 b(the)g(indicated)g(op)5
b(erations)56 b(on)g(c)-5 b(haracter)55 b(sets.)830 6799
y(The)h(follo)-5 b(wing)56 b(c)-5 b(haracter)55 b(sets)g(are)h
(prede\014ned:)992 7303 y Fo(lower-case)375 b(\(set)88
b("abcdefghijklmnopqrstuvwxyz"\))992 7502 y(upper-case)375
b(\(set)88 b("ABCDEFGHIJKLMNOPQRSTUVWXYZ"\))992 7701
y(alphabetic)375 b(\(union)89 b(lower-case)g(upper-case\))992
7900 y(numeric)636 b(\(set)88 b("0123456789"\))992 8100
y(alphanumeric)201 b(\(union)89 b(alphabetic)g(numeric\))992
8299 y(punctuation)288 b(\(set)88 b
("!\\"#$\045&'\(\)*+,-./:;<=>?@[\\\\]^_`{|}~"\))992 8498
y(graphic)636 b(\(union)89 b(alphanumeric)g(punctuation\))992
8697 y(printing)549 b(\(union)89 b(graphic)f(\(set)g(#\\space\)\))992
8897 y(control)636 b(\(negate)89 b(printing\))992 9096
y(blank)810 b(\(set)88 b(#\\space)h(\(ascii->char)g(9\)\))56
b Fs(;)f(9)h(is)g(tab)992 9295 y Fo(whitespace)375 b(\(union)89
b(\(set)f(#\\space\))g(\(ascii-range)h(9)f(13\)\))992
9494 y(hexdigit)549 b(\(set)88 b("0123456789abcdefABCDEF"\))3362
10511 y Fs(63)p eop end
%%Page: 64 72
TeXDict begin 64 71 bop 1478 1383 a Fs(The)89 b(ab)5
b(o)-5 b(v)g(e)88 b(are)h(tak)-5 b(en)88 b(from)h(the)g(default)f(lo)5
b(cale)88 b(in)i(POSIX.)e(The)h(c)-5 b(haracters)89 b(in)1478
1582 y Fo(whitespace)64 b Fs(are)e Fr(sp)-8 b(ac)g(e)12
b Fs(,)64 b Fr(tab)10 b Fs(,)66 b Fr(new)8 b(line)77
b Fs(\(=)62 b Fr(line)67 b(fe)-8 b(e)g(d)17 b Fs(\),)64
b Fr(vertic)-8 b(al)67 b(tab)10 b Fs(,)65 b Fr(form)h(fe)-8
b(e)g(d)17 b Fs(,)64 b(and)1478 1782 y Fr(c)-8 b(arriage)60
b(r)-8 b(eturn)13 b Fs(.)1478 2255 y Ff(5.20.2)225 b(Anc)-6
b(horing)1511 2563 y Fj(\017)83 b Fo(\(string-start\))i
Fj(!)f Fr(r)-8 b(e)g(g-exp)1511 2762 y Fj(\017)83 b Fo(\(string-end\))i
Fj(!)e Fr(r)-8 b(e)g(g-exp)1478 3066 y Fo(String-start)65
b Fs(returns)f(a)g(regular)g(expression)h(that)e(matc)-5
b(hes)64 b(the)f(b)5 b(eginning)64 b(of)g(the)1478 3266
y(string)56 b(b)5 b(eing)55 b(matc)-5 b(hed)56 b(against;)g(string-end)
g(returns)g(one)f(that)g(matc)-5 b(hes)56 b(the)f(end.)1478
3739 y Ff(5.20.3)225 b(Comp)6 b(osite)75 b(expressions)1511
4047 y Fj(\017)83 b Fo(\(sequence)i Fr(r)-8 b(e)g(g-exp)83
b(.)25 b(.)g(.)g Fo(\))103 b Fj(!)83 b Fr(r)-8 b(e)g(g-exp)1511
4246 y Fj(\017)83 b Fo(\(one-of)h Fr(r)-8 b(e)g(g-exp)84
b(.)25 b(.)g(.)g Fo(\))103 b Fj(!)83 b Fr(r)-8 b(e)g(g-exp)1478
4550 y Fo(Sequence)49 b Fs(matc)-5 b(hes)49 b(the)f(concatenation)f(of)
h(its)g(argumen)-5 b(ts,)51 b Fo(one-of)e Fs(matc)-5
b(hes)49 b(an)-5 b(y)48 b(one)1478 4749 y(of)55 b(its)g(argumen)-5
b(ts.)1511 5053 y Fj(\017)83 b Fo(\(text)h Fr(string)15
b Fo(\))84 b Fj(!)f Fr(r)-8 b(e)g(g-exp)1478 5357 y Fo(Text)41
b Fs(returns)g(a)g(regular)g(expression)h(that)e(matc)-5
b(hes)41 b(the)g(c)-5 b(haracters)41 b(in)g Fr(string)15
b Fs(,)44 b(in)d(order.)1511 5661 y Fj(\017)83 b Fo(\(repeat)h
Fr(r)-8 b(e)g(g-exp)10 b Fo(\))84 b Fj(!)f Fr(r)-8 b(e)g(g-exp)1511
5860 y Fj(\017)83 b Fo(\(repeat)h Fr(c)-8 b(ount)84 b(r)-8
b(e)g(g-exp)10 b Fo(\))84 b Fj(!)f Fr(r)-8 b(e)g(g-exp)1511
6059 y Fj(\017)83 b Fo(\(repeat)h Fr(min)f(max)g(r)-8
b(e)g(g-exp)10 b Fo(\))84 b Fj(!)f Fr(r)-8 b(e)g(g-exp)1478
6363 y Fo(Repeat)49 b Fs(returns)f(a)g(regular)g(expression)h(that)e
(matc)-5 b(hes)49 b(zero)e(or)h(more)g(o)5 b(ccurences)48
b(of)f(its)1478 6563 y Fr(r)-8 b(e)g(g-exp)49 b Fs(argumen)-5
b(t.)69 b(With)38 b(no)g(coun)-5 b(t)39 b(the)f(result)g(will)h(matc)-5
b(h)39 b(an)-5 b(y)38 b(n)-5 b(um)g(b)5 b(er)40 b(of)e(times)h(\()p
Fr(r)-8 b(e)g(g-)1478 6762 y(exp)10 b Fs(*\).)89 b(With)60
b(a)g(single)h(coun)-5 b(t)60 b(the)g(returned)g(expression)h(will)g
(matc)-5 b(h)61 b Fr(r)-8 b(e)g(g-exp)71 b Fs(exactly)1478
6961 y(that)58 b(n)-5 b(um)g(b)5 b(er)60 b(of)f(times.)85
b(The)59 b(\014nal)h(case)f(will)g(matc)-5 b(h)59 b(from)h
Fr(min)71 b Fs(to)59 b Fr(max)79 b Fs(rep)5 b(etitions,)1478
7160 y(inclusiv)-5 b(e.)151 b Fr(Max)100 b Fs(ma)-5 b(y)81
b(b)5 b(e)80 b Fo(#f)p Fs(,)88 b(in)81 b(whic)-5 b(h)81
b(case)g(there)f(is)h(no)g(maxim)-5 b(um)83 b(n)-5 b(um)g(b)5
b(er)82 b(of)1478 7360 y(matc)-5 b(hes.)102 b Fr(Count)81
b Fs(and)65 b Fr(min)77 b Fs(should)66 b(b)5 b(e)65 b(exact,)h
(non-negativ)-5 b(e)65 b(in)-5 b(tegers;)70 b Fr(max)84
b Fs(should)1478 7559 y(either)55 b(b)5 b(e)55 b(an)g(exact)g
(non-negativ)-5 b(e)55 b(in)-5 b(teger)56 b(or)f Fo(#f)p
Fs(.)1478 8032 y Ff(5.20.4)225 b(Case)75 b(sensitivit)-6
b(y)1478 8342 y Fs(Regular)56 b(expressions)g(are)g(normally)f
(case-sensitiv)-5 b(e.)1511 8679 y Fj(\017)83 b Fo(\(ignore-case)i
Fr(r)-8 b(e)g(g-exp)10 b Fo(\))84 b Fj(!)f Fr(r)-8 b(e)g(g-exp)1511
8878 y Fj(\017)83 b Fo(\(use-case)i Fr(r)-8 b(e)g(g-exp)10
b Fo(\))84 b Fj(!)f Fr(r)-8 b(e)g(g-exp)1478 9215 y Fs(The)60
b(v)-9 b(alue)59 b(returned)h(b)-5 b(y)62 b Fo(ignore-case)g
Fs(is)e(iden)-5 b(tical)61 b(its)f(argumen)-5 b(t)60
b(except)f(that)g(case)1478 9415 y(will)k(b)5 b(e)62
b(ignored)h(when)g(matc)-5 b(hing.)97 b(The)63 b(v)-9
b(alue)62 b(returned)h(b)-5 b(y)65 b Fo(use-case)f Fs(is)f(protected)
1478 9614 y(from)37 b(future)f(applications)i(of)50 b
Fo(ignore-case)p Fs(.)70 b(The)36 b(expressions)j(returned)e(b)-5
b(y)39 b Fo(use-case)1478 9813 y Fs(and)56 b Fo(ignore-case)h
Fs(are)e(una\013ected)h(b)-5 b(y)55 b(later)g(uses)i(of)e(the)g(these)h
(pro)5 b(cedures.)74 b(By)55 b(w)-5 b(a)g(y)1478 10012
y(of)55 b(example,)g(the)g(follo)-5 b(wing)56 b(matc)-5
b(hes)56 b Fo("ab")g Fs(but)g(not)f Fo("aB")p Fs(,)h
Fo("Ab")p Fs(,)g(or)g Fo("AB")p Fs(.)4259 10511 y(64)p
eop end
%%Page: 65 73
TeXDict begin 65 72 bop 581 1046 a Fo(\(text)88 b("ab"\))581
1374 y Fs(while)581 1701 y Fo(\(ignore-case)h(\(test)f("ab"\)\))581
2029 y Fs(matc)-5 b(hes)56 b Fo("ab")p Fs(,)g Fo("aB")p
Fs(,)h Fo("Ab")p Fs(,)f(and)g Fo("AB")g Fs(and)581 2357
y Fo(\(ignore-case)89 b(\(sequence)g(\(text)f("a"\))2586
2556 y(\(use-case)h(\(text)f("b"\)\)\)\))581 2884 y Fs(matc)-5
b(hes)56 b Fo("ab")g Fs(and)g Fo("Ab")g Fs(but)g(not)f
Fo("aB")h Fs(or)f Fo("AB")p Fs(.)581 3348 y Ff(5.20.5)225
b(Submatc)-6 b(hes)73 b(and)h(matc)-6 b(hing)581 3654
y Fs(A)42 b(sub)5 b(expression)45 b(within)e(a)g(larger)f(expression)i
(can)f(b)5 b(e)42 b(mark)-5 b(ed)44 b(as)f(a)g(submatc)-5
b(h.)71 b(When)581 3853 y(an)g(expression)g(is)g(matc)-5
b(hed)70 b(against)h(a)f(string,)75 b(the)70 b(success)h(or)g(failure)f
(of)g(eac)-5 b(h)70 b(sub-)581 4053 y(matc)-5 b(h)45
b(within)g(that)f(expression)i(is)f(rep)5 b(orted,)46
b(as)f(w)-5 b(ell)45 b(as)g(the)f(lo)5 b(cation)45 b(of)f(the)g
(substring)581 4252 y(matc)-5 b(hed)56 b(b)5 b(e)55 b(eac)-5
b(h)56 b(successful)g(submatc)-5 b(h.)614 4546 y Fj(\017)83
b Fo(\(submatch)i Fr(key)e(r)-8 b(e)g(g-exp)10 b Fo(\))85
b Fj(!)e Fr(r)-8 b(e)g(g-exp)614 4746 y Fj(\017)83 b
Fo(\(no-submatches)j Fr(r)-8 b(e)g(g-exp)10 b Fo(\))84
b Fj(!)f Fr(r)-8 b(e)g(g-exp)581 5040 y Fo(Submatch)72
b Fs(returns)e(a)g(regular)g(expression)h(that)f(matc)-5
b(hes)70 b(its)h(argumen)-5 b(t)70 b(and)h(causes)581
5239 y(the)j(result)g(of)g(matc)-5 b(hing)75 b(its)f(argumen)-5
b(t)74 b(to)g(b)5 b(e)74 b(rep)5 b(orted)73 b(b)-5 b(y)74
b(the)g Fo(match)h Fs(pro)5 b(cedure.)581 5438 y Fr(Key)87
b Fs(is)73 b(used)h(to)e(indicate)h(the)f(result)h(of)f(this)i
(particular)f(submatc)-5 b(h)74 b(in)f(the)f(alist)h(of)581
5638 y(successful)g(submatc)-5 b(hes)74 b(returned)e(b)-5
b(y)75 b Fo(match)p Fs(.)125 b(An)-5 b(y)71 b(v)-9 b(alue)72
b(ma)-5 b(y)72 b(b)5 b(e)72 b(used)h(as)f(a)g Fr(key)15
b Fs(.)581 5837 y Fo(No-submatches)56 b Fs(returns)f(an)f(expression)h
(iden)-5 b(tical)54 b(to)g(its)g(argumen)-5 b(t,)55 b(except)e(that)g
(all)581 6036 y(submatc)-5 b(hes)57 b(ha)-5 b(v)g(e)56
b(b)5 b(een)55 b(elided.)614 6331 y Fj(\017)83 b Fo(\(any-match?)102
b Fr(r)-8 b(e)g(g-exp)84 b(string)15 b Fo(\))83 b Fj(!)g
Fr(b)-8 b(o)g(ole)g(an)614 6530 y Fj(\017)83 b Fo(\(exact-match?)103
b Fr(r)-8 b(e)g(g-exp)83 b(string)15 b Fo(\))84 b Fj(!)f
Fr(b)-8 b(o)g(ole)g(an)614 6729 y Fj(\017)83 b Fo(\(match)h
Fr(r)-8 b(e)g(g-exp)84 b(string)15 b Fo(\))84 b Fj(!)f
Fr(match)g(or)g Fo(#f)614 6928 y Fj(\017)g Fo(\(match-start)i
Fr(match)13 b Fo(\))83 b Fj(!)h Fr(index)614 7128 y Fj(\017)f
Fo(\(match-end)i Fr(match)13 b Fo(\))83 b Fj(!)g Fr(index)614
7327 y Fj(\017)g Fo(\(match-submatches)j Fr(match)13
b Fo(\))83 b Fj(!)g Fr(alist)581 7621 y Fo(Any-match?)99
b Fs(returns)63 b Fo(#t)h Fs(if)75 b Fr(string)k Fs(matc)-5
b(hes)64 b Fr(r)-8 b(e)g(g-exp)74 b Fs(or)63 b(con)-5
b(tains)64 b(a)f(substring)h(that)581 7821 y(do)5 b(es,)47
b(and)f Fo(#f)f Fs(otherwise.)70 b Fo(Exact-match?)j
Fs(returns)45 b Fo(#t)g Fs(if)58 b Fr(string)i Fs(matc)-5
b(hes)45 b Fr(r)-8 b(e)g(g-exp)56 b Fs(and)581 8020 y
Fo(#f)g Fs(otherwise.)830 8219 y Fo(Match)61 b Fs(returns)f
Fo(#f)g Fs(if)72 b Fr(r)-8 b(e)g(g-exp)70 b Fs(do)5 b(es)60
b(not)g(matc)-5 b(h)59 b Fr(string)75 b Fs(and)61 b(a)e(matc)-5
b(h)60 b(record)g(if)f(it)581 8418 y(do)5 b(es)65 b(matc)-5
b(h.)103 b(A)65 b(matc)-5 b(h)65 b(record)g(con)-5 b(tains)66
b(three)e(v)-9 b(alues:)93 b(the)65 b(b)5 b(eginning)65
b(and)h(end)f(of)581 8618 y(the)50 b(substring)j(that)d(matc)-5
b(hed)51 b(the)f(pattern)g(and)h(an)g(a-list)g(of)g(submatc)-5
b(h)52 b(k)-5 b(eys)50 b(and)h(cor-)581 8817 y(resp)5
b(onding)52 b(matc)-5 b(h)51 b(records)g(for)g(an)-5
b(y)51 b(submatc)-5 b(hes)52 b(that)f(also)g(matc)-5
b(hed.)73 b Fo(Match-start)581 9016 y Fs(returns)43 b(the)f(index)h(of)
f(the)g(\014rst)h(c)-5 b(haracter)42 b(in)h(the)f(matc)-5
b(hing)43 b(substring)h(and)f Fo(match-end)581 9215 y
Fs(giv)-5 b(es)38 b(index)e(of)h(the)g(\014rst)g(c)-5
b(haracter)36 b(after)h(the)f(matc)-5 b(hing)38 b(substring.)69
b Fo(Match-submatches)581 9415 y Fs(returns)43 b(an)g(alist)h(of)e
(submatc)-5 b(h)44 b(k)-5 b(eys)43 b(and)g(matc)-5 b(h)43
b(records.)71 b(Only)43 b(the)f(top)h(matc)-5 b(h)43
b(record)581 9614 y(returned)55 b(b)-5 b(y)58 b Fo(match)f
Fs(has)f(a)f(submatc)-5 b(h)57 b(alist.)830 9813 y(Matc)-5
b(hing)62 b(o)5 b(ccurs)60 b(according)h(to)f(POSIX.)h(The)g(matc)-5
b(h)61 b(returned)f(is)i(the)e(one)h(with)581 10012 y(the)h(lo)-5
b(w)g(est)63 b(starting)g(index)f(in)h Fr(string)15 b
Fs(.)96 b(If)62 b(there)g(is)h(more)g(than)f(one)h(suc)-5
b(h)63 b(matc)-5 b(h,)65 b(the)3362 10511 y(65)p eop
end
%%Page: 66 74
TeXDict begin 66 73 bop 1478 1046 a Fs(longest)76 b(is)g(returned.)134
b(Within)75 b(that)g(matc)-5 b(h)76 b(the)f(longest)h(p)5
b(ossible)76 b(submatc)-5 b(hes)77 b(are)1478 1245 y(returned.)1727
1447 y(All)60 b(three)g(matc)-5 b(hing)62 b(pro)5 b(cedures)61
b(cac)-5 b(he)60 b(a)h(compiled)g(v)-5 b(ersion)62 b(of)73
b Fr(r)-8 b(e)g(g-exp)10 b Fs(.)91 b(Subse-)1478 1646
y(quen)-5 b(t)55 b(calls)h(with)f(the)g(same)h Fr(r)-8
b(e)g(g-exp)66 b Fs(will)56 b(b)5 b(e)55 b(more)h(e\016cien)-5
b(t.)1727 1848 y(The)67 b(C)h(in)-5 b(terface)67 b(to)g(the)g(POSIX)g
(regular)h(expression)g(co)5 b(de)67 b(uses)h(ASCI)5
b(I)67 b Fo(nul)h Fs(as)1478 2047 y(an)f(end-of-string)i(mark)-5
b(er.)110 b(The)67 b(matc)-5 b(hing)69 b(pro)5 b(cedures)67
b(will)h(ignore)f(an)-5 b(y)68 b(c)-5 b(haracters)1478
2246 y(follo)g(wing)56 b(an)f(em)-5 b(b)5 b(edded)57
b(ASCI)5 b(I)54 b Fo(nul)p Fs(s)j(in)e Fr(string)15 b
Fs(.)1478 2623 y Fo(\(define)88 b(pattern)h(\(text)f("abc"\)\))1478
2822 y(\(any-match?)h(pattern)f("abc"\))786 b Fj(!)87
b Fo(#t)1478 3021 y(\(any-match?)i(pattern)f("abx"\))786
b Fj(!)87 b Fo(#f)1478 3221 y(\(any-match?)i(pattern)f("xxabcxx"\))438
b Fj(!)87 b Fo(#t)1478 3619 y(\(exact-match?)i(pattern)g("abc"\))611
b Fj(!)87 b Fo(#t)1478 3818 y(\(exact-match?)i(pattern)g("abx"\))611
b Fj(!)87 b Fo(#f)1478 4018 y(\(exact-match?)i(pattern)g("xxabcxx"\))
263 b Fj(!)87 b Fo(#f)1478 4416 y(\(match)h(pattern)g("abc"\))1222
b Fj(!)87 b Fo(\(#)p Fj(f)p Fo(match)h(0)g(3)p Fj(g)p
Fo(\))1478 4615 y(\(match)g(pattern)g("abx"\))1222 b
Fj(!)87 b Fo(#f)1478 4815 y(\(match)h(pattern)g("xxabcxx"\))874
b Fj(!)87 b Fo(\(#)p Fj(f)p Fo(match)h(2)g(5)p Fj(g)p
Fo(\))1478 5213 y(\(let)g(\(\(x)f(\(match)i(\(sequence)f(\(text)g
("ab"\))3744 5412 y(\(submatch)h('foo)f(\(text)g("cd"\)\))3744
5612 y(\(text)g("ef"\)\))2873 5811 y("xxxabcdefxx"\)\)\))1652
6010 y(\(list)g(x)g(\(match-submatches)i(x\)\)\))1652
6209 y Fj(!)d Fo(\(#)p Fj(f)p Fo(match)i(3)e(9)p Fj(g)g
Fo(\(\(foo)h(.)g(#)p Fj(f)p Fo(match)g(5)f(7)p Fj(g)p
Fo(\)\))1478 6608 y(\(match-submatches)1652 6807 y(\(match)h
(\(sequence)2437 7006 y(\(set)g("a"\))2437 7206 y(\(one-of)g
(\(submatch)h('foo)f(\(text)g("bc"\)\))3134 7405 y(\(submatch)h('bar)f
(\(text)g("BC"\)\)\)\))2262 7604 y("xxxaBCd"\)\))1652
7803 y Fj(!)f Fo(\(\(bar)h(.)g(#)p Fj(f)p Fo(match)g(4)f(6)p
Fj(g)p Fo(\)\))1478 8364 y Fl(5.21)270 b(SRFIs)1478 8732
y Fs(`SRFI')53 b(stands)f(for)g(`Sc)-5 b(heme)52 b(Request)f(F)-14
b(or)53 b(Implemen)-5 b(tation'.)73 b(An)52 b(SRFI)g(is)h(a)e(descrip-)
1478 8932 y(tion)65 b(of)g(an)h(extension)f(to)g(standard)h(Sc)-5
b(heme.)104 b(Draft)65 b(and)h(\014nal)f(SRFI)i(do)5
b(cumen)-5 b(ts,)68 b(a)1478 9131 y(F)-18 b(A)-5 b(Q,)37
b(and)g(other)g(information)g(ab)5 b(out)37 b(SRFIs)h(can)f(b)5
b(e)37 b(found)g(at)f Fo(http://srfi.schemers.org)p Fs(.)1727
9332 y(Sc)-5 b(heme)56 b(48)f(includes)i(implemen)-5
b(tations)57 b(of)e(the)g(follo)-5 b(wing)56 b(\(\014nal\))f(SRFIs:)
1727 9671 y Fj(\017)83 b Fs(SRFI)56 b(1)f({)h(List)f(Library)1727
10012 y Fj(\017)83 b Fs(SRFI)56 b(2)f({)h Fo(and-let*)4259
10511 y Fs(66)p eop end
%%Page: 67 75
TeXDict begin 67 74 bop 830 1046 a Fj(\017)83 b Fs(SRFI)56
b(5)g({)f Fo(let)h Fs(with)f(signatures)i(and)f(rest)f(argumen)-5
b(ts)830 1375 y Fj(\017)83 b Fs(SRFI)56 b(6)g({)f(Basic)h(string)f(p)5
b(orts)830 1705 y Fj(\017)83 b Fs(SRFI)56 b(7)g({)f(Program)h
(con\014guration)830 2034 y Fj(\017)83 b Fs(SRFI)56 b(8)g({)f
Fo(receive)830 2363 y Fj(\017)83 b Fs(SRFI)56 b(9)g({)f(De\014ning)h
(record)f(t)-5 b(yp)5 b(es)830 2693 y Fj(\017)83 b Fs(SRFI)56
b(11)g({)f(Syn)-5 b(tax)55 b(for)g(receiving)g(m)-5 b(ultiple)57
b(v)-9 b(alues)830 3022 y Fj(\017)83 b Fs(SRFI)56 b(13)g({)f(String)h
(Library)830 3351 y Fj(\017)83 b Fs(SRFI)56 b(14)g({)f(Character-Set)g
(Library)g(\(see)g(note)g(b)5 b(elo)-5 b(w\))830 3681
y Fj(\017)83 b Fs(SRFI)56 b(16)g({)f(Syn)-5 b(tax)55
b(for)g(pro)5 b(cedures)56 b(of)f(v)-9 b(ariable)55 b(arit)-5
b(y)830 4010 y Fj(\017)83 b Fs(SRFI)56 b(17)g({)f(Generalized)h
Fo(set!)830 4339 y Fj(\017)83 b Fs(SRFI)56 b(22)g({)f(Running)i(Sc)-5
b(heme)56 b(Scripts)g(on)f(Unix)830 4669 y Fj(\017)83
b Fs(SRFI)56 b(23)g({)f(Error)h(rep)5 b(orting)55 b(mec)-5
b(hanism)830 4998 y Fj(\017)83 b Fs(SRFI)56 b(25)g({)f
(Multi-dimensional)j(Arra)-5 b(y)55 b(Primitiv)-5 b(es)830
5327 y Fj(\017)83 b Fs(SRFI)56 b(26)g({)f(Notation)g(for)g(Sp)5
b(ecializing)55 b(P)-5 b(arameters)56 b(without)f(Currying)830
5657 y Fj(\017)83 b Fs(SRFI)56 b(27)g({)f(Sources)h(of)f(Random)i(Bits)
830 5986 y Fj(\017)83 b Fs(SRFI)56 b(28)g({)f(Basic)h(F)-14
b(ormat)56 b(Strings)830 6315 y Fj(\017)83 b Fs(SRFI)56
b(31)g({)f(A)g(sp)5 b(ecial)56 b(form)f Fo(rec)h Fs(for)f(recursiv)-5
b(e)56 b(ev)-9 b(aluation)830 6645 y Fj(\017)83 b Fs(SRFI)56
b(34)g({)f(Exception)g(Handling)h(for)f(Programs)830
6974 y Fj(\017)83 b Fs(SRFI)56 b(35)g({)f(Conditions)830
7303 y Fj(\017)83 b Fs(SRFI)56 b(36)g({)f(I/O)h(Conditions)830
7632 y Fj(\017)83 b Fs(SRFI)56 b(37)g({)f(args-fold:)75
b(a)56 b(program)g(argumen)-5 b(t)56 b(pro)5 b(cessor)830
7962 y Fj(\017)83 b Fs(SRFI)56 b(42)g({)f(Eager)g(Comprehensions)830
8291 y Fj(\017)83 b Fs(SRFI)56 b(45)g({)f(Primitiv)-5
b(es)56 b(for)f(Expressing)i(Iterativ)-5 b(e)54 b(Lazy)h(Algorithms)581
8618 y(Do)5 b(cumen)-5 b(tation)55 b(on)h(these)f(can)h(b)5
b(e)55 b(found)h(at)e(the)h(w)-5 b(eb)56 b(site)f(men)-5
b(tioned)57 b(ab)5 b(o)-5 b(v)g(e.)830 8817 y(SRFI)46
b(14)g(includes)g(the)f(pro)5 b(cedure)45 b Fo(->char-set)i
Fs(whic)-5 b(h)46 b(is)g(not)f(a)h(standard)g(Sc)-5 b(heme)581
9016 y(iden)g(ti\014er)47 b(\(in)f(R)1640 8956 y Fm(5)1715
9016 y Fs(RS)g(the)g(only)g(required)g(iden)-5 b(ti\014er)46
b(starting)h(with)e Fo(-)i Fs(is)f Fo(-)h Fs(itself)13
b(\).)70 b(In)46 b(the)581 9215 y(Sc)-5 b(heme)56 b(48)g(v)-5
b(ersion)56 b(of)f(SRFI)h(14)f(w)-5 b(e)56 b(ha)-5 b(v)g(e)56
b(renamed)f Fo(->char-set)j Fs(as)d Fo(x->char-set)p
Fs(.)830 9415 y(The)49 b(SRFI)g(bindings)h(can)f(b)5
b(e)48 b(accessed)h(either)f(b)-5 b(y)49 b(op)5 b(ening)49
b(the)f(appropriate)h(struc-)581 9614 y(ture)69 b(\(the)f(structure)h
Fo(srfi-)p Fr(n)83 b Fs(con)-5 b(tains)70 b(SRFI)g Fr(n)13
b Fs(\))69 b(or)g(b)-5 b(y)70 b(loading)g(structure)f
Fo(srfi-7)581 9813 y Fs(and)61 b(then)f(using)h(the)f
Fo(,load-srfi-7-program)k Fs(command)d(to)f(load)h(an)f(SRFI)h(7-st)-5
b(yle)581 10012 y(program.)75 b(The)55 b(syn)-5 b(tax)55
b(for)h(the)f(command)h(is)3362 10511 y(67)p eop end
%%Page: 68 76
TeXDict begin 68 75 bop 1478 1046 a Fo(,load-srfi-7-program)90
b Fr(name)100 b(\014lename)1478 1378 y Fs(This)38 b(creates)f(a)h(new)f
(structure)h(and)g(asso)5 b(ciated)37 b(pac)-5 b(k)c(age,)41
b(binds)e(the)e(structure)h(to)f Fr(name)1478 1577 y
Fs(in)46 b(the)g(con\014guration)g(pac)-5 b(k)c(age,)48
b(and)f(then)f(loads)h(the)e(program)i(found)g(in)f Fr(\014lename)60
b Fs(in)-5 b(to)1478 1777 y(the)55 b(pac)-5 b(k)c(age.)1727
1976 y(As)55 b(an)h(example,)f(if)h(the)e(\014le)i Fo(test.scm)h
Fs(con)-5 b(tains)1478 2308 y Fo(\(program)88 b(\(code)g(\(define)h(x)e
(10\)\)\))1478 2640 y Fs(this)56 b(program)g(can)f(b)5
b(e)55 b(loaded)h(as)g(follo)-5 b(ws:)1478 2972 y Fo(>)87
b(,load-package)j(srfi-7)1478 3171 y(>)d(,load-srfi-7-program)k(test)d
(test.scm)1478 3371 y([test])1478 3570 y(>)f(,in)h(test)1478
3769 y(test>)g(x)1478 3968 y(10)1478 4168 y(test>)4259
10511 y Fs(68)p eop end
%%Page: 69 77
TeXDict begin 69 76 bop 581 2294 a Fn(Chapter)130 b(6)581
3127 y Fq(Threads)581 3993 y Fs(This)53 b(c)-5 b(hapter)53
b(describ)5 b(es)53 b(Sc)-5 b(heme)53 b(48's)g(thread)f(system:)73
b(Sc)-5 b(heme)53 b(48)f(threads)h(are)f(fully)581 4192
y(preemptiv)-5 b(e;)47 b(all)c(threads)g(\(curren)-5
b(tly\))41 b(run)i(within)g(a)g(single)g(op)5 b(erating)42
b(system)h(pro)5 b(cess.)581 4391 y(Sc)-5 b(heme)46 b(48)e(allo)-5
b(ws)46 b(writing)f(customized,)i(nested)e(sc)-5 b(hedulers,)49
b(and)c(pro)-5 b(vides)46 b(n)-5 b(umerous)581 4590 y(facilities)48
b(for)g(the)f(sync)-5 b(hronization)49 b(of)e(shared-memory)j
(programs,)g(most)f(imp)5 b(ortan)-5 b(tly)581 4790 y
Fr(pr)d(op)g(osals)68 b Fs(for)55 b(optimistic)h(concurrency)-14
b(.)581 5352 y Fl(6.1)270 b(Creating)89 b(and)i(con)-7
b(trolling)89 b(threads)581 5721 y Fs(The)55 b(bindings)j(describ)5
b(ed)55 b(in)h(this)g(section)f(are)g(part)h(of)f(the)g
Fo(threads)h Fs(structure.)614 6061 y Fj(\017)83 b Fo(\(spawn)h
Fr(thunk)18 b Fo(\))84 b Fj(!)f Fr(thr)-8 b(e)g(ad)614
6260 y Fj(\017)83 b Fo(\(spawn)h Fr(thunk)g(name)12 b
Fo(\))84 b Fj(!)f Fr(thr)-8 b(e)g(ad)581 6600 y Fo(Spawn)67
b Fs(creates)f(a)h(new)f(thread,)j(passes)f(that)e(thread)g(to)g(the)g
(curren)-5 b(t)67 b(sc)-5 b(heduler,)70 b(and)581 6799
y(instructs)i(the)e(sc)-5 b(heduler)72 b(to)f(run)g Fr(thunk)90
b Fs(in)71 b(that)f(thread.)121 b(The)71 b Fr(name)83
b Fs(argumen)-5 b(t)72 b(\(a)581 6998 y(sym)-5 b(b)5
b(ol\))55 b(asso)5 b(ciates)55 b(a)f(sym)-5 b(b)5 b(olic)55
b(name)g(with)f(the)g(thread;)h(it)f(is)h(purely)g(for)f(debugging)581
7197 y(purp)5 b(oses.)614 7537 y Fj(\017)83 b Fo
(\(relinquish-timeslice)t(\))614 7736 y Fj(\017)g Fo(\(sleep)h
Fr(time-in-mil)8 b(lise)-8 b(c)g(onds)14 b Fo(\))614
7936 y Fj(\017)83 b Fo(\(terminate-current-thread)5 b(\))581
8275 y(Relinquish-timeslice)57 b Fs(instructs)d(the)g(sc)-5
b(heduler)54 b(to)f(run)i(another)e(thread,)h(th)-5 b(us)54
b(re-)581 8475 y(linquishing)63 b(the)d(timeslice)h(of)g(the)g(curren)
-5 b(t)61 b(thread.)90 b Fo(Sleep)62 b Fs(do)5 b(es)61
b(the)g(same)h(and)f(asks)581 8674 y(the)41 b(sc)-5 b(heduler)42
b(to)f(susp)5 b(end)42 b(the)f(curren)-5 b(t)41 b(thread)g(for)g(at)g
(least)g Fr(time-in-mil)8 b(lise)-8 b(c)g(onds)57 b Fs(mil-)581
8873 y(liseconds)67 b(b)5 b(efore)64 b(resuming)j(it.)103
b(Finally)-14 b(,)69 b Fo(terminate-current-thread)h
Fs(terminates)581 9072 y(the)55 b(curren)-5 b(t)56 b(thread.)830
9274 y(Eac)-5 b(h)73 b(thread)f(is)h(represen)-5 b(ted)73
b(b)-5 b(y)73 b(a)f(thread)h(ob)9 b(ject.)124 b(The)72
b(follo)-5 b(wing)73 b(pro)5 b(cedures)581 9473 y(op)g(erate)55
b(on)g(that)g(ob)9 b(ject:)614 9813 y Fj(\017)83 b Fo
(\(current-thread\))j Fj(!)d Fr(thr)-8 b(e)g(ad)614 10012
y Fj(\017)83 b Fo(\(thread?)102 b Fr(thing)15 b Fo(\))83
b Fj(!)g Fr(b)-8 b(o)g(ole)g(an)3362 10511 y Fs(69)p
eop end
%%Page: 70 78
TeXDict begin 70 77 bop 1511 1046 a Fj(\017)83 b Fo(\(thread-name)i
Fr(thr)-8 b(e)g(ad)17 b Fo(\))83 b Fj(!)g Fr(name)1511
1245 y Fj(\017)g Fo(\(thread-uid)i Fr(thr)-8 b(e)g(ad)17
b Fo(\))82 b Fj(!)i Fr(inte)-8 b(ger)1478 1630 y Fo(Current-thread)39
b Fs(returns)f(the)e(thread)h(ob)9 b(ject)37 b(asso)5
b(ciated)37 b(with)g(the)f(curren)-5 b(tly)37 b(running)1478
1829 y(thread.)73 b Fo(Thread?)i Fs(is)54 b(the)g(predicate)g(for)g
(thread)f(ob)9 b(jects.)74 b Fo(Thread-name)56 b Fs(extracts)d(the)1478
2029 y(name)77 b(of)f(the)g(thread,)82 b(if)77 b(one)g(w)-5
b(as)77 b(sp)5 b(eci\014ed)77 b(in)g(the)f(call)h(to)f
Fo(spawn)p Fs(,)83 b Fo(#f)77 b Fs(otherwise.)1478 2228
y Fo(Thread-uid)g Fs(returns)g(the)e Fr(uid)93 b Fs(of)76
b(the)f(thread,)81 b(a)76 b(unique)g(in)-5 b(teger)76
b(assigned)i(b)-5 b(y)76 b(the)1478 2427 y(thread)55
b(system.)1478 3069 y Fl(6.2)269 b(Adv)-15 b(anced)91
b(thread)e(handling)1478 3466 y Fs(The)55 b(follo)-5
b(wing)56 b(bindings)h(are)e(part)h(of)f(the)g Fo(threads-internal)j
Fs(structure:)1511 3851 y Fj(\017)83 b Fo(\(terminate-thread!)j
Fr(thr)-8 b(e)g(ad)17 b Fo(\))1511 4050 y Fj(\017)83
b Fo(\(kill-thread!)i Fr(thr)-8 b(e)g(ad)17 b Fo(\))1478
4435 y(Terminate-thread!)108 b Fs(un)-5 b(winds)67 b(the)e(thread)h
(asso)5 b(ciated)66 b(with)f Fr(thr)-8 b(e)g(ad)17 b
Fs(,)68 b(running)f(an)-5 b(y)1478 4634 y(p)5 b(ending)44
b Fo(dynamic-wind)e Fr(after)60 b Fs(th)-5 b(unks)41
b(\(in)g(that)f(thread\),)k(after)c(whic)-5 b(h)41 b(the)g(thread)g
(ter-)1478 4833 y(minates.)79 b Fo(Kill-thread!)h Fs(causes)57
b(the)g(thread)g(asso)5 b(ciated)57 b(with)f Fr(thr)-8
b(e)g(ad)73 b Fs(to)57 b(terminate)1478 5032 y(immediately)e(without)g
(un)-5 b(winding)58 b(its)d(con)-5 b(tin)g(uation.)1478
5675 y Fl(6.3)269 b(Debugging)93 b(m)-7 b(ultithreaded)88
b(programs)1478 6071 y Fs(Debugging)56 b(m)-5 b(ultithreaded)56
b(programs)g(can)g(b)5 b(e)55 b(di\016cult.)1727 6288
y(As)63 b(describ)5 b(ed)64 b(in)f(section)h(3.11,)h(when)f(an)-5
b(y)63 b(thread)h(signals)g(an)g(error,)h(Sc)-5 b(heme)64
b(48)1478 6487 y(stops)56 b(running)g(all)g(of)f(the)g(threads)h(at)f
(that)g(command)h(lev)-5 b(el.)1727 6704 y(The)43 b(follo)-5
b(wing)43 b(pro)5 b(cedure)42 b(\(exp)5 b(orted)42 b(b)-5
b(y)43 b(the)f(structure)g Fo(debug-messages)p Fs(\))j(is)e(use-)1478
6903 y(ful)55 b(in)h(debugging)g(m)-5 b(ulti-threaded)57
b(programs.)1511 7288 y Fj(\017)83 b Fo(\(debug-message)i
Fr(element)3534 7313 y Fm(0)3694 7288 y Fr(.)25 b(.)g(.)g
Fo(\))1478 7673 y(Debug-message)43 b Fs(prin)-5 b(ts)42
b(the)f(elemen)-5 b(ts)41 b(to)g(`)p Fo(stderr)p Fs(',)k(follo)-5
b(w)g(ed)42 b(b)-5 b(y)41 b(a)g(newline.)69 b(The)41
b(only)1478 7872 y(t)-5 b(yp)5 b(es)58 b(of)g(v)-9 b(alues)58
b(that)g Fo(debug-message)i Fs(prin)-5 b(ts)59 b(in)g(full)f(are)g
(small)i(in)-5 b(tegers)58 b(\(\014xn)-5 b(ums\),)1478
8071 y(strings,)48 b(c)-5 b(haracters,)48 b(sym)-5 b(b)5
b(ols,)49 b(b)5 b(o)g(oleans,)48 b(and)e(the)f(empt)-5
b(y)46 b(list.)71 b(V)-14 b(alues)46 b(of)f(other)h(t)-5
b(yp)5 b(es)1478 8271 y(are)55 b(abbreviated)g(as)h(follo)-5
b(ws:)2843 8630 y(pair)629 b Fo(\(...\))2843 8829 y Fs(v)-5
b(ector)471 b Fo(#\(...\))2843 9028 y Fs(pro)5 b(cedure)199
b Fo(#)p Fj(f)p Fo(procedure)p Fj(g)2843 9227 y Fs(record)462
b Fo(#)p Fj(f)p Fo(<name)88 b(of)f(record)i(type>)p Fj(g)2843
9427 y Fs(all)55 b(others)241 b Fo(???)1478 9813 y Fs(The)53
b(great)f(thing)i(ab)5 b(out)53 b Fo(debug-message)i
Fs(is)f(that)e(it)h(b)-5 b(ypasses)55 b(Sc)-5 b(heme)54
b(48's)g(I/O)f(and)1478 10012 y(thread)i(handling.)75
b(The)56 b(message)g(app)5 b(ears)56 b(immediately)-14
b(,)56 b(with)f(no)g(dela)-5 b(ys)56 b(or)g(errors.)4259
10511 y(70)p eop end
%%Page: 71 79
TeXDict begin 71 78 bop 581 1046 a Fl(6.4)270 b(Optimistic)88
b(concurrency)581 1410 y Fs(Most)37 b(of)g(the)g(bindings)h(describ)5
b(ed)37 b(in)h(this)f(section)g(are)g(part)g(of)f(the)h
Fo(proposals)h Fs(structure|)581 1609 y(the)63 b(lo)-5
b(w-lev)g(el)64 b(bindings)h(describ)5 b(ed)64 b(at)e(the)h(v)-5
b(ery)63 b(end)h(of)f(the)f(section)i(are)f(part)g(of)g(the)581
1808 y Fo(low-proposals)58 b Fs(structure.)830 2008 y(A)52
b Fr(pr)-8 b(op)g(osal)69 b Fs(is)53 b(a)f(record)h(of)f(reads)h(from)g
(and)g(and)g(writes)g(to)f(lo)5 b(cations)52 b(in)h(memory)-14
b(.)581 2207 y(Eac)-5 b(h)48 b(thread)g(has)g(an)g(asso)5
b(ciated)48 b Fr(curr)-8 b(ent)53 b(pr)-8 b(op)g(osal)63
b Fs(\(whic)-5 b(h)48 b(ma)-5 b(y)48 b(b)5 b(e)48 b Fo(#f)p
Fs(\).)71 b(The)47 b Fr(lo)-8 b(gging)581 2406 y Fs(op)5
b(erations)40 b(listed)h(b)5 b(elo)-5 b(w)40 b(record)g(an)-5
b(y)40 b(v)-9 b(alues)41 b(read)f(or)g(written)f(in)i(the)f(curren)-5
b(t)40 b(prop)5 b(osal.)581 2605 y(A)42 b(reading)h(op)5
b(eration,)44 b(suc)-5 b(h)44 b(as)f Fo(provisional-vector-ref)p
Fs(,)48 b(\014rst)43 b(c)-5 b(hec)g(ks)43 b(to)f(see)g(if)g(the)581
2805 y(curren)-5 b(t)61 b(prop)5 b(osal)62 b(con)-5 b(tains)62
b(a)f(v)-9 b(alue)61 b(for)f(the)h(relev)-5 b(en)g(t)61
b(lo)5 b(cation.)90 b(If)61 b(so,)i(that)d(v)-9 b(alue)61
b(is)581 3004 y(returned)i(as)f(the)g(result)h(of)f(the)g(read.)95
b(If)62 b(not,)j(the)d(curren)-5 b(t)62 b(con)-5 b(ten)g(ts)63
b(of)f(the)g(lo)5 b(cation)581 3203 y(are)46 b(stored)h(in)f(the)g
(prop)5 b(osal)47 b(and)g(then)f(returned)g(as)g(the)g(result)h(of)f
(the)f(read.)71 b(A)46 b(logging)581 3402 y(write)57
b(to)g(a)g(lo)5 b(cation)57 b(stores)g(the)g(new)h(v)-9
b(alue)56 b(as)i(the)f(curren)-5 b(t)57 b(con)-5 b(ten)g(ts)58
b(of)f(the)g(lo)5 b(cation)581 3602 y(in)56 b(the)f(curren)-5
b(t)55 b(prop)5 b(osal;)57 b(the)e(con)-5 b(ten)g(ts)55
b(of)h(the)f(lo)5 b(cation)54 b(itself)i(remain)g(unc)-5
b(hanged.)830 3801 y Fr(Committing)70 b Fs(to)54 b(a)g(prop)5
b(osal)55 b(v)-5 b(eri\014es)55 b(that)f(an)-5 b(y)55
b(reads)g(logged)g(in)f(the)h(prop)5 b(osal)55 b(are)581
4000 y(still)60 b(v)-9 b(alid)59 b(and,)i(if)e(so,)i(p)5
b(erforms)60 b(an)-5 b(y)60 b(writes)f(that)g(the)g(prop)5
b(osal)60 b(con)-5 b(tains.)87 b(A)58 b(logged)581 4199
y(read)53 b(is)g(v)-9 b(alid)53 b(if,)g(at)f(the)g(time)h(of)f(the)g
(commit,)i(the)e(lo)5 b(cation)52 b(con)-5 b(tains)54
b(the)e(same)h(v)-9 b(alue)581 4399 y(it)65 b(had)h(at)g(the)f(time)g
(of)h(the)f(original)h(read)g(\(note)e(that)h(this)h(do)5
b(es)66 b(not)f(mean)h(that)f(no)581 4598 y(c)-5 b(hange)57
b(o)5 b(ccured,)57 b(simply)h(that)e(the)g(v)-9 b(alue)57
b(no)-5 b(w)57 b(is)g(the)g(same)g(as)g(the)f(v)-9 b(alue)57
b(then\).)77 b(If)57 b(a)581 4797 y(prop)5 b(osal)56
b(has)g(an)f(in)-5 b(v)c(alid)56 b(read)f(then)g(the)f(e\013ort)g(to)h
(commit)g(fails;)h(no)f(c)-5 b(hange)56 b(is)f(made)581
4996 y(to)46 b(the)f(v)-9 b(alue)46 b(of)g(an)-5 b(y)46
b(lo)5 b(cation.)70 b(The)46 b(v)-5 b(eri\014cations)46
b(and)h(subsequen)-5 b(t)47 b(writes)f(to)f(memory)581
5196 y(are)55 b(p)5 b(erformed)56 b(atomically)f(with)g(resp)5
b(ect)55 b(to)g(other)g(prop)5 b(osal)56 b(commit)f(attempts.)614
5473 y Fj(\017)83 b Fo(\(call-ensuring-atomicity)88 b
Fr(thunk)18 b Fo(\))84 b Fj(!)f Fr(value)h(.)25 b(.)g(.)614
5672 y Fj(\017)83 b Fo(\(call-ensuring-atomicity!)88
b Fr(thunk)18 b Fo(\))614 5871 y Fj(\017)83 b Fo(\(ensure-atomicity)j
Fr(exp)94 b Fo(...\))56 b Fj(!)g Fr(value)k(.)25 b(.)g(.)1900
b Fs(syn)-5 b(tax)614 6071 y Fj(\017)83 b Fo(\(ensure-atomicity!)k
Fr(exp)93 b Fo(...\))2722 b Fs(syn)-5 b(tax)581 6348
y(If)37 b(there)f(is)i(a)f(prop)5 b(osal)37 b(in)h(place)e
Fo(call-ensuring-atomicity)41 b Fs(and)d Fo(call-ensuring-atomicity!)
581 6547 y Fs(simply)60 b(mak)-5 b(e)59 b(a)f(\(tail-recursiv)-5
b(e\))58 b(call)h(to)f Fr(thunk)18 b Fs(.)85 b(If)58
b(the)g(curren)-5 b(t)59 b(prop)5 b(osal)59 b(is)g Fo(#f)g
Fs(they)581 6746 y(create)75 b(a)h(new)f(prop)5 b(osal,)82
b(install)76 b(it,)81 b(call)75 b Fr(thunk)18 b Fs(,)82
b(and)76 b(then)g(try)f(to)g(commit)h(to)f(the)581 6946
y(prop)5 b(osal.)124 b(This)73 b(pro)5 b(cess)72 b(rep)5
b(eats,)76 b(with)c(a)g(new)f(prop)5 b(osal)73 b(on)f(eac)-5
b(h)72 b(iteration,)k(un)-5 b(til)581 7145 y(the)61 b(commit)g
(succeeds.)92 b Fo(Call-ensuring-atomicity)65 b Fs(returns)c(whatev)-5
b(er)61 b(v)-9 b(alues)61 b(are)581 7344 y(returned)j(b)-5
b(y)67 b Fr(thunk)82 b Fs(on)64 b(its)h(\014nal)f(in)-5
b(v)g(o)5 b(cation,)67 b(while)d Fo(ensure-atomicity!)102
b Fs(discards)581 7543 y(an)-5 b(y)56 b(suc)-5 b(h)56
b(v)-9 b(alues)56 b(and)g(returns)f(nothing.)830 7743
y Fo(Ensure-Atomicity)40 b Fs(and)d Fo(ensure-atomicity!)71
b Fs(are)37 b(macro)g(v)-5 b(ersions)38 b(of)49 b Fo
(call-ensuring-atomicity)581 7942 y Fs(and)38 b Fo
(call-ensuring-atomicity!)p Fs(:)68 b Fo(\(ensure-atomicity)91
b Fr(exp)97 b Fo(...\))69 b Fs(expands)37 b(in)-5 b(to)581
8141 y Fo(\(call-ensuring-atomicity)91 b(\(lambda)e(\(\))e
Fr(exp)98 b Fo(...\)\))p Fs(;)44 b(lik)-5 b(ewise)38
b(for)e Fo(ensure-atomicity!)581 8340 y Fs(and)56 b Fo
(call-ensuring-atomicity!)p Fs(.)614 8618 y Fj(\017)83
b Fo(\(provisional-car)j Fr(p)-8 b(air)18 b Fo(\))82
b Fj(!)h Fr(value)614 8817 y Fj(\017)g Fo(\(provisional-cdr)j
Fr(p)-8 b(air)18 b Fo(\))82 b Fj(!)h Fr(value)614 9016
y Fj(\017)g Fo(\(provisional-set-car!)k Fr(p)-8 b(air)82
b(value)12 b Fo(\))614 9215 y Fj(\017)83 b Fo(\(provisional-set-cdr!)k
Fr(p)-8 b(air)82 b(value)12 b Fo(\))614 9415 y Fj(\017)83
b Fo(\(provisional-cell-ref)k Fr(c)-8 b(el)8 b(l)17 b
Fo(\))85 b Fj(!)e Fr(value)614 9614 y Fj(\017)g Fo
(\(provisional-cell-set!)k Fr(c)-8 b(el)8 b(l)85 b(value)12
b Fo(\))614 9813 y Fj(\017)83 b Fo(\(provisional-vector-ref)k
Fr(ve)-8 b(ctor)84 b(i)17 b Fo(\))83 b Fj(!)g Fr(value)614
10012 y Fj(\017)g Fo(\(provisional-vector-set!)88 b Fr(ve)-8
b(ctor)83 b(i)g(value)12 b Fo(\))3362 10511 y Fs(71)p
eop end
%%Page: 72 80
TeXDict begin 72 79 bop 1511 1046 a Fj(\017)83 b Fo
(\(provisional-string-ref)k Fr(ve)-8 b(ctor)84 b(i)17
b Fo(\))83 b Fj(!)g Fr(char)1511 1245 y Fj(\017)g Fo
(\(provisional-string-set!)k Fr(ve)-8 b(ctor)84 b(i)f(char)18
b Fo(\))1511 1445 y Fj(\017)83 b Fo(\(provisional-byte-vector-ref)88
b Fr(ve)-8 b(ctor)84 b(i)17 b Fo(\))83 b Fj(!)g Fr(k)1511
1644 y Fj(\017)g Fo(\(provisional-byte-vector-set!)88
b Fr(ve)-8 b(ctor)84 b(i)f(k)18 b Fo(\))1478 1950 y Fs(These)56
b(are)f(all)h(logging)g(v)-5 b(ersions)57 b(of)f(their)f(Sc)-5
b(heme)57 b(coun)-5 b(terparts.)75 b(Reads)56 b(are)g(c)-5
b(hec)g(k)g(ed)1478 2149 y(when)43 b(the)g(curren)-5
b(t)44 b(prop)5 b(osal)44 b(is)g(committed)f(and)h(writes)g(are)f(dela)
-5 b(y)g(ed)44 b(un)-5 b(til)44 b(the)f(commit)1478 2349
y(succeeds.)103 b(If)65 b(the)g(curren)-5 b(t)65 b(prop)5
b(osal)66 b(is)f Fo(#f)h Fs(these)f(p)5 b(erform)65 b(exactly)e(as)j
(their)f(Sc)-5 b(heme)1478 2548 y(coun)g(terparts.)1727
2750 y(The)45 b(follo)-5 b(wing)45 b(implemen)-5 b(tation)46
b(of)f(a)g(simple)h(coun)-5 b(ter)45 b(ma)-5 b(y)46 b(not)f(function)g
(prop)5 b(erly)1478 2949 y(when)55 b(used)h(b)-5 b(y)56
b(m)-5 b(ultiple)56 b(threads.)1478 3291 y Fo(\(define)88
b(\(make-counter\))1652 3490 y(\(let)g(\(\(value)g(0\)\))1826
3689 y(\(lambda)h(\(\))2001 3889 y(\(set!)f(value)g(\(+)f(value)h
(1\)\))2001 4088 y(value\)\)\))1727 4427 y Fs(Here)57
b(is)i(the)f(same)h(pro)5 b(cedure)58 b(using)h(a)f(prop)5
b(osal)59 b(to)f(ensure)h(that)e(eac)-5 b(h)59 b(incremen)-5
b(t)1478 4626 y(op)5 b(eration)68 b(happ)5 b(ens)69 b(atomically)-14
b(.)113 b(The)68 b(v)-9 b(alue)68 b(of)g(the)g(coun)-5
b(ter)69 b(is)f(k)-5 b(ept)68 b(in)h(a)f(cell)h(\(see)1478
4826 y(section)55 b(5.7\))g(to)g(allo)-5 b(w)56 b(the)f(use)h(of)f
(logging)h(op)5 b(erations.)1478 5168 y Fo(\(define)88
b(\(make-counter\))1652 5367 y(\(let)g(\(\(value)g(\(make-cell)h
(0\)\)\))1826 5566 y(\(lambda)g(\(\))2001 5765 y(\(ensure-atomicity)
2175 5965 y(\(lambda)g(\(\))2350 6164 y(\(let)e(\(\(v)h(\(+)g
(\(provisional-cell-ref)i(value\))3396 6363 y(1\)\)\))2524
6562 y(\(provisional-cell-set!)h(value)d(v\))2524 6762
y(v\)\)\)\)\)\))1727 7101 y Fs(Because)67 b Fo(ensure-atomicity)j
Fs(creates)d(a)h(new)f(prop)5 b(osal)69 b(only)e(if)h(there)f(is)h(no)g
(ex-)1478 7300 y(isting)j(prop)5 b(osal)72 b(in)f(place,)k(m)-5
b(ultiple)71 b(atomic)g(actions)g(can)g(b)5 b(e)71 b(merged)g(in)-5
b(to)71 b(a)g(single)1478 7500 y(atomic)d(action.)114
b(F)-14 b(or)70 b(example,)i(the)c(follo)-5 b(wing)69
b(pro)5 b(cedure)69 b(incremen)-5 b(ts)70 b(an)f(arbitrary)1478
7699 y(n)-5 b(um)g(b)5 b(er)77 b(of)e(coun)-5 b(ters)76
b(at)f(the)g(same)h(time.)135 b(This)76 b(w)-5 b(orks)76
b(ev)-5 b(en)75 b(if)h(the)f(same)h(coun)-5 b(ter)1478
7898 y(app)5 b(ears)48 b(m)-5 b(ultiple)48 b(times;)i
Fo(\(step-counters!)177 b(c0)88 b(c0\))47 b Fs(w)-5 b(ould)49
b(add)e(t)-5 b(w)g(o)48 b(to)f(the)g(v)-9 b(alue)1478
8097 y(of)55 b(coun)-5 b(ter)55 b Fo(c0)p Fs(.)1478 8439
y Fo(\(define)88 b(\(step-counters!)i(.)d(counters\))1652
8639 y(\(ensure-atomicity)1826 8838 y(\(lambda)i(\(\))2001
9037 y(\(for-each)g(\(lambda)f(\(counter\))3047 9236
y(\(counter\)\))2873 9436 y(counters\)\)\)\))1478 9813
y(\(define-synchronized-record-type)k Fr(tag)103 b(typ)-8
b(e-name)1652 10012 y Fo(\()p Fr(c)g(onstructor-name)101
b(\014eld-tag)j Fo(...\))4259 10511 y Fs(72)p eop end
%%Page: 73 81
TeXDict begin 73 80 bop 755 1046 a Fo([\()60 b Fr(\014eld-tag)104
b Fo(...\)])755 1245 y Fr(pr)-8 b(e)g(dic)g(ate-name)755
1445 y Fo(\()p Fr(\014eld-tag)104 b(ac)-8 b(c)g(essor-name)101
b Fo([)p Fr(mo)-8 b(di\014er-name)12 b Fo(]\))755 1644
y(...\))581 2068 y Fs(This)62 b(is)g(the)f(same)h(as)g
Fo(define-record-type)i Fs(except)c(all)h(\014eld)h(reads)g(and)g
(writes)f(are)581 2267 y(logged)g(in)f(the)g(curren)-5
b(t)60 b(prop)5 b(osal.)89 b(If)60 b(the)g(optional)g(list)h(of)f
(\014eld)g(tags)g(is)h(presen)-5 b(t)61 b(then)581 2466
y(only)56 b(those)f(\014elds)h(will)g(b)5 b(e)55 b(logged.)614
2809 y Fj(\017)83 b Fo(\(call-atomically)j Fr(thunk)18
b Fo(\))84 b Fj(!)f Fr(value\(s\))614 3008 y Fj(\017)g
Fo(\(call-atomically!)j Fr(thunk)18 b Fo(\))614 3207
y Fj(\017)83 b Fo(\(atomically)i Fr(exp)94 b Fo(...\))56
b Fj(!)g Fr(value\(s\))2482 b Fs(syn)-5 b(tax)614 3407
y Fj(\017)83 b Fo(\(atomically!)i Fr(exp)94 b Fo(...\))3245
b Fs(syn)-5 b(tax)581 3749 y Fo(Call-atomically)40 b
Fs(and)d Fo(call-atomically!)70 b Fs(are)37 b(iden)-5
b(tical)38 b(to)e Fo(call-ensuring-atomicity)581 3949
y Fs(and)72 b Fo(call-ensuring-atomicity!)127 b Fs(except)71
b(that)g(they)g(alw)-5 b(a)g(ys)72 b(install)h(a)e(new)h(pro-)581
4148 y(p)5 b(osal)74 b(b)5 b(efore)72 b(calling)j Fo(thunk)p
Fs(.)128 b(The)73 b(curren)-5 b(t)73 b(prop)5 b(osal)73
b(is)h(sa)-5 b(v)g(ed)74 b(and)f(then)g(restored)581
4347 y(after)f Fo(thunk)h Fs(returns.)124 b Fo(Call-atomically)75
b Fs(and)e Fo(Call-atomically!)127 b Fs(are)72 b(useful)h(if)581
4546 y Fo(thunk)56 b Fs(con)-5 b(tains)57 b(co)5 b(de)54
b(that)h(is)h(not)f(to)g(b)5 b(e)55 b(com)-5 b(bined)57
b(with)e(an)-5 b(y)56 b(other)f(op)5 b(eration.)830 4760
y Fo(Atomically)52 b Fs(and)e Fo(atomically!)74 b Fs(are)49
b(macro)h(v)-5 b(ersions)51 b(of)63 b Fo(call-atomically)52
b Fs(and)581 4959 y Fo(call-atomically!)p Fs(:)87 b Fo(\(atomically)i
Fr(exp)98 b Fo(...\))90 b Fs(expands)61 b(in)-5 b(to)61
b Fo(\(call-atomically)581 5159 y(\(lambda)89 b(\(\))e
Fr(exp)98 b Fo(...\)\))p Fs(;)56 b(lik)-5 b(ewise)56
b(for)f Fo(atomically!)76 b Fs(and)56 b Fo(call-atomically!)p
Fs(.)614 5501 y Fj(\017)83 b Fo(\(with-new-proposal)k(\()p
Fr(lose)12 b Fo(\))84 b Fr(exp)94 b Fo(...\))56 b Fj(!)f
Fr(value)61 b(.)25 b(.)g(.)1271 b Fs(syn)-5 b(tax)830
5844 y Fo(With-new-proposal)52 b Fs(sa)-5 b(v)g(es)49
b(the)f(curren)-5 b(t)49 b(prop)5 b(osal,)51 b(installs)f(a)e(new)g
(one,)j(executes)581 6043 y(the)j(forms)i(in)f(the)f(b)5
b(o)g(dy)-14 b(,)54 b(and)h(returns)g(whatev)-5 b(er)54
b(they)g(returns.)74 b(It)54 b(also)i(binds)f Fr(lose)68
b Fs(to)581 6243 y(a)54 b(th)-5 b(unk)55 b(rep)5 b(eating)54
b(the)g(pro)5 b(cedure)54 b(of)g(installing)h(a)f(new)h(pro)5
b(cedure)54 b(and)h(running)g(the)581 6442 y(b)5 b(o)g(dy)-14
b(.)74 b(T)-5 b(ypically)-14 b(,)56 b(the)f(b)5 b(o)g(dy)55
b(will)g(call)h Fo(maybe-commit)i Fs(and,)e(if)f(that)g(fails,)h(call)g
Fr(lose)68 b Fs(to)581 6641 y(try)55 b(again.)830 6855
y(The)65 b(follo)-5 b(wing)66 b(pro)5 b(cedures)65 b(giv)-5
b(e)65 b(access)g(to)g(the)f(lo)-5 b(w-lev)g(el)66 b(prop)5
b(osal)66 b(mec)-5 b(hanism.)581 7054 y(They)55 b(are)g(de\014ned)h(in)
g(the)f Fo(low-proposals)j Fs(structure.)614 7430 y Fj(\017)83
b Fo(\(maybe-commit\))j Fj(!)d Fr(b)-8 b(o)g(ole)g(an)614
7629 y Fj(\017)83 b Fo(\(make-proposal\))j Fj(!)d Fr(pr)-8
b(op)g(osal)614 7829 y Fj(\017)83 b Fo(\(current-proposal\))k
Fj(!)c Fr(pr)-8 b(op)g(osal)614 8028 y Fj(\017)83 b Fo
(\(set-current-proposal!)k Fr(pr)-8 b(op)g(osal)17 b
Fo(\))581 8404 y(Maybe-commit)73 b Fs(v)-5 b(eri\014es)72
b(that)f(an)-5 b(y)71 b(reads)h(logged)f(in)h(the)f(curren)-5
b(t)71 b(prop)5 b(osal)72 b(are)f(still)581 8603 y(v)-9
b(alid)58 b(and,)h(if)e(so,)i(p)5 b(erforms)58 b(an)-5
b(y)58 b(writes)f(that)g(it)h(con)-5 b(tains.)81 b(A)57
b(logged)h(read)g(is)g(v)-9 b(alid)58 b(if,)581 8802
y(at)39 b(the)g(time)h(of)f(the)g(commit,)k(the)c(lo)5
b(cation)39 b(read)g(con)-5 b(tains)41 b(the)e(same)h(v)-9
b(alue)39 b(it)g(had)h(at)f(the)581 9002 y(time)51 b(of)f(the)g
(original)h(read)g(\(note)e(that)h(this)h(do)5 b(es)51
b(not)f(mean)h(that)f(no)h(c)-5 b(hange)51 b(o)5 b(ccured,)581
9201 y(simply)45 b(that)f(the)g(v)-9 b(alue)43 b(no)-5
b(w)45 b(is)g(the)e(same)i(as)g(the)f(v)-9 b(alue)43
b(then\).)70 b Fo(Maybe-commit)46 b Fs(returns)581 9400
y Fo(#t)56 b Fs(if)f(the)g(commit)h(succeeds)g(and)g
Fo(#f)f Fs(if)g(it)g(fails.)830 9614 y Fo(Make-proposal)39
b Fs(creates)e(a)g(new)g(prop)5 b(osal.)68 b Fo(Current-proposal)40
b Fs(and)d Fo(set-current-proposal)581 9813 y Fs(access)g(and)h(set)f
(the)f(curren)-5 b(t)37 b(thread's)h(prop)5 b(osal.)68
b(It)37 b(is)g(an)g(error)g(to)g(pass)h(to)e Fo(set-current-proposal!)
581 10012 y Fs(a)56 b(prop)5 b(osal)56 b(that)e(is)i(already)g(in)f
(use.)3362 10511 y(73)p eop end
%%Page: 74 82
TeXDict begin 74 81 bop 1478 1046 a Fl(6.5)269 b(Condition)92
b(v)-15 b(ariables)1478 1460 y Fr(Condition)61 b(variables)71
b Fs(\(de\014ned)57 b(in)h(the)e Fo(condvars)i Fs(structure\))f(allo)-5
b(w)57 b(threads)g(p)5 b(erform)1478 1660 y(condition)73
b(sync)-5 b(hronization:)110 b(It)73 b(allo)-5 b(ws)74
b(threads)f(to)g(blo)5 b(c)-5 b(k,)77 b(w)-5 b(aiting)73
b(for)g(a)g(sp)5 b(eci\014ed)1478 1859 y(condition|asso)g(ciated)47
b(with)g(a)g(condition)h(v)-9 b(ariable|to)46 b(o)5 b(ccur,)48
b(and)g(other)e(threads)i(to)1478 2058 y(w)-5 b(ak)g(e)55
b(up)h(the)f(w)-5 b(aiting)56 b(threads)g(when)f(the)g(condition)h(is)g
(ful\014lled.)1727 2284 y(Note)g(that,)i(in)g(Sc)-5 b(heme)58
b(48,)g(condition)g(v)-9 b(ariables)58 b(w)-5 b(ork)58
b(in)g(conjunction)f(with)h(pro-)1478 2484 y(p)5 b(osals,)59
b(not)e(with)g(m)-5 b(utex)58 b(lo)5 b(c)-5 b(ks)57 b(or)h(semaphores,)
h(as)f(in)g(most)g(other)f(implemen)-5 b(tations)1478
2683 y(of)55 b(this)h(concept.)1511 3063 y Fj(\017)83
b Fo(\(make-condvar\))i Fj(!)f Fr(c)-8 b(ondvar)1511
3263 y Fj(\017)83 b Fo(\(make-condvar)i Fr(id)17 b Fo(\))83
b Fj(!)h Fr(c)-8 b(ondvar)1511 3462 y Fj(\017)83 b Fo(\(condvar?)102
b Fr(thing)15 b Fo(\))83 b Fj(!)g Fr(b)-8 b(o)g(ole)g(an)1511
3661 y Fj(\017)83 b Fo(\(set-condvar-has-value?!)k Fr(c)-8
b(ondvar)83 b(b)-8 b(o)g(ole)g(an)13 b Fo(\))1511 3860
y Fj(\017)83 b Fo(\(condvar-has-value?)103 b Fr(c)-8
b(ondvar)18 b Fo(\))84 b Fj(!)f Fr(b)-8 b(o)g(ole)g(an)1511
4060 y Fj(\017)83 b Fo(\(set-condvar-value!)j Fr(c)-8
b(ondvar)84 b(value)12 b Fo(\))1511 4259 y Fj(\017)83
b Fo(\(condvar-value)i Fr(c)-8 b(ondvar)18 b Fo(\))84
b Fj(!)f Fr(value)1511 4458 y Fj(\017)g Fo
(\(maybe-commit-and-wait-for-condvar)89 b Fr(c)-8 b(ondvar)18
b Fo(\))83 b Fj(!)g Fr(b)-8 b(o)g(ole)g(an)1511 4657
y Fj(\017)83 b Fo(\(maybe-commit-and-set-condvar!)105
b Fr(c)-8 b(ondvar)83 b(value)12 b Fo(\))85 b Fj(!)e
Fr(b)-8 b(o)g(ole)g(an)1478 5038 y Fo(Make-condvar)60
b Fs(creates)e(a)h(condition)g(v)-9 b(ariable.)83 b(\(The)58
b(optional)h Fr(id)76 b Fs(argumen)-5 b(t)59 b(is)g(only)1478
5237 y(for)80 b(debugging)h(purp)5 b(oses;)94 b(the)80
b(discloser)i(for)e(condition)g(v)-9 b(ariables)81 b(prin)-5
b(ts)81 b(it)f(out)g(if)1478 5436 y(presen)-5 b(t.\))74
b Fo(Condvar?)h Fs(is)56 b(the)f(predicate)g(for)g(condition)h(v)-9
b(ariables.)1727 5663 y(Eac)k(h)55 b(condition)h(v)-9
b(ariable)54 b(has)i(an)f(asso)5 b(ciated)55 b(v)-9 b(alue)55
b(and)g(a)g(\015ag)j Fo(has-value?)75 b Fs(sig-)1478
5862 y(nalling)38 b(if)e(the)h(condition)g(has)h(already)f(o)5
b(ccured.)67 b(The)37 b(accessor)g(for)g(\015ag)g(is)h
Fo(condvar-has-value?)p Fs(;)1478 6061 y Fo(set-condvar-has-value?!)144
b Fs(sets)78 b(it.)140 b(Both)77 b(are)g(pro)-5 b(visional)80
b(op)5 b(erations)77 b(and)h(go)1478 6260 y(through)58
b(the)g(curren)-5 b(t)59 b(prop)5 b(osal.)83 b Fo(Set-condvar-value!)j
Fs(sets)58 b(the)g(v)-9 b(alue)58 b(of)g(the)g(con-)1478
6460 y(dition)d(v)-9 b(ariable)56 b(\(pro)-5 b(visionally\),)55
b(and)h Fo(condvar-value)i Fs(extracts)c(it.)1727 6686
y Fo(Maybe-commit-and-wait-for-condvar)42 b Fs(attempts)37
b(to)f(commit)i(the)e(curren)-5 b(t)37 b(pro-)1478 6885
y(p)5 b(osal.)100 b(If)64 b(the)g(commit)g(succeeds,)j(it)d(susp)5
b(ends)66 b(the)d(curren)-5 b(t)65 b(thread)f(and)g(registers)h(it)1478
7085 y(with)37 b(the)f Fr(c)-8 b(ondvar)55 b Fs(condition)37
b(v)-9 b(ariable.)68 b(Up)5 b(on)36 b(w)-5 b(aking)38
b(up)f(again)g Fo(maybe-commit-and-wait-for-condvar)1478
7284 y Fs(returns)56 b Fo(#t)p Fs(,)f(If)g(the)g(commit)h(fails,)g
Fo(maybe-commit-and-set-condvar)k Fs(returns)c Fo(#f)p
Fs(.)1727 7510 y Fo(Maybe-commit-and-set-condvar!)97
b Fs(sets)61 b(the)g(v)-9 b(alue)61 b(of)g(the)g Fr(c)-8
b(ondvar)80 b Fs(condition)1478 7710 y(v)-9 b(ariable)59
b(to)h Fr(value)12 b Fs(,)62 b(\(pro)-5 b(visionally\))60
b(sets)g(the)g Fo(has-value?)88 b Fs(\015ag)60 b(to)f
Fo(#t)p Fs(,)j(and)e(then)f(at-)1478 7909 y(tempt)47
b(to)h(commit)g(the)g(curren)-5 b(t)48 b(prop)5 b(osal.)72
b(Up)5 b(on)48 b(success,)j(it)c(w)-5 b(ak)g(es)49 b(up)g(all)f(susp)5
b(ended)1478 8108 y(threads)56 b(registered)f(with)g
Fr(c)-8 b(ondvar)73 b Fs(and)56 b(returns)g Fo(#t)p Fs(,)g(otherwise,)f
(it)g(returns)h Fo(#f)p Fs(.)1478 8801 y Fl(6.6)269 b(Mutual)90
b(exclusion)1478 9215 y Fs(Sc)-5 b(heme)54 b(48)g(also)h(has)g(more)f
(traditional)g(m)-5 b(utual-exclusion)56 b(sync)-5 b(hronization)55
b(abstrac-)1478 9415 y(tions,)71 b(sp)5 b(eci\014cally)68
b(m)-5 b(utex)67 b(lo)5 b(c)-5 b(ks)68 b(and)g(placeholders.)111
b(Note)67 b(that)g(t)-5 b(ypically)67 b(sync)-5 b(hro-)1478
9614 y(nization)41 b(via)g(optimistic)h(concurrency)e(is)i(usually)g
(preferable:)67 b(Mutual)41 b(exclusion)h(often)1478
9813 y(puts)g(the)g(running)h(program)g(in)-5 b(to)43
b(an)f(inconsisten)-5 b(t)43 b(state)f(for)g(the)f(time)h(of)g(the)g
(inclusion,)1478 10012 y(whic)-5 b(h)56 b(has)g(adv)-5
b(erse)56 b(e\013ects)e(on)i(mo)5 b(dularit)-5 b(y)56
b(and)g(in)-5 b(terruptibilit)g(y)-14 b(.)4259 10511
y(74)p eop end
%%Page: 75 83
TeXDict begin 75 82 bop 581 1046 a Ff(6.6.1)225 b(Lo)6
b(c)-6 b(ks)581 1353 y Fs(The)55 b Fo(locks)i Fs(structure)e(con)-5
b(tains)56 b(bindings)h(that)e(implemen)-5 b(t)56 b(standard)h(m)-5
b(utex)55 b(lo)5 b(c)-5 b(ks:)614 1681 y Fj(\017)83 b
Fo(\(make-lock\))i Fj(!)e Fr(lo)-8 b(ck)614 1880 y Fj(\017)83
b Fo(\(lock?)101 b Fr(thing)15 b Fo(\))84 b Fj(!)f Fr(b)-8
b(o)g(ole)g(an)614 2080 y Fj(\017)83 b Fo(\(obtain-lock)i
Fr(lo)-8 b(ck)18 b Fo(\))614 2279 y Fj(\017)83 b Fo
(\(maybe-obtain-lock)k Fr(lo)-8 b(ck)18 b Fo(\))83 b
Fj(!)g Fr(b)-8 b(o)g(ole)g(an)614 2478 y Fj(\017)83 b
Fo(\(release-lock)j Fr(lo)-8 b(ck)18 b Fo(\))581 2807
y(Make-lock)71 b Fs(creates)e(a)g(lo)5 b(c)-5 b(k)69
b(in)g(the)g(\\released")h(state.)115 b Fo(Lock?)h Fs(is)70
b(the)f(predicate)g(for)581 3006 y(lo)5 b(c)-5 b(ks.)830
3205 y Fo(Obtain-lock)53 b Fs(atomically)e(c)-5 b(hec)g(ks)51
b(if)64 b Fr(lo)-8 b(ck)69 b Fs(is)52 b(in)f(the)g(\\released")g
(state.)72 b(If)51 b(it)f(is,)j(the)581 3404 y(lo)5 b(c)-5
b(k)52 b(is)h(put)f(in)-5 b(to)53 b(the)f(\\obtained")g(state,)h(and)g
Fo(obtain-lock)h Fs(returns)f(immediately)-14 b(.)73
b(If)581 3604 y(the)37 b(lo)5 b(c)-5 b(k)37 b(is)g(in)h(the)e
(\\obtained")i(state,)i(the)d(curren)-5 b(t)37 b(thread)g(is)h(susp)5
b(ended)38 b(and)g(registered)581 3803 y(with)51 b(the)g(lo)5
b(c)-5 b(k.)72 b Fo(Maybe-obtain-lock)p Fs(,)55 b(lik)-5
b(e)51 b Fo(obtain-lock)p Fs(,)j(c)-5 b(hec)g(ks)52 b(the)f(state)f(of)
64 b Fr(lo)-8 b(ck)18 b Fs(:)581 4002 y(if)59 b(it)f(is)h(\\released,")
h(the)e(lo)5 b(c)-5 b(k)58 b(is)i(put)e(in)-5 b(to)59
b(the)f(\\obtained")h(state,)g(if)g(it)f(is)h(\\obtained,")581
4201 y Fo(maybe-obtain-lock)h Fs(returns)e(immediately)-14
b(.)80 b Fo(Maybe-obtain-lock)60 b Fs(returns)e Fo(#t)g
Fs(if)f(it)581 4401 y(w)-5 b(as)56 b(able)g(to)f(obtain)g(the)g(lo)5
b(c)-5 b(k,)55 b(and)h Fo(#f)g Fs(otherwise.)830 4600
y Fo(Release-lock)80 b Fs(do)5 b(es)78 b(nothing)g(if)90
b Fr(lo)-8 b(ck)96 b Fs(is)79 b(in)f(the)f(\\released")h(state.)140
b(If)78 b(it)f(is)h(in)581 4799 y(the)51 b(\\obtained")g(state,)h
Fo(release-lock)h Fs(causes)f(one)f(of)g(the)f(threads)i(susp)5
b(ended)52 b(on)f(an)581 4998 y Fo(obtain-lock)72 b Fs(lo)5
b(c)-5 b(k)69 b(op)5 b(eration)69 b(to)h(con)-5 b(tin)g(ue)70
b(execution.)117 b(If)69 b(that)g(thread)h(is)g(the)f(last)581
5198 y(thread)60 b(registered)h(with)f(the)g(lo)5 b(c)-5
b(k,)61 b(the)f(lo)5 b(c)-5 b(k)60 b(is)h(transferred)f(to)g(the)g
(\\released")h(state.)581 5397 y(In)56 b(an)-5 b(y)55
b(case,)h Fo(release-lock)h Fs(returns)f(immediately)-14
b(.)581 5861 y Ff(6.6.2)225 b(Placeholders)581 6167 y
Fs(The)74 b Fo(placeholders)i Fs(structure)d(con)-5 b(tains)75
b(bindings)g(for)f Fr(plac)-8 b(eholders)14 b Fs(|thread-safe,)581
6367 y(write-once)55 b(v)-9 b(ariables,)56 b(akin)f(to)g(ID-90)h
(I-structures)g(or)f(CML)g(I-v)-9 b(ariables.)830 6566
y(The)72 b(t)-5 b(ypical)71 b(scenario)h(for)f(placeholders)i(is)f
(that,)j(sa)-5 b(y)-14 b(,)76 b(a)71 b(thread)h(A)f(computes)h(a)581
6765 y(v)-9 b(alue)47 b(needed)g(b)-5 b(y)48 b(another)f(thread)g(B)f
(at)h(some)h(unsp)5 b(eci\014ed)48 b(time.)71 b(Both)47
b(threads)g(share)581 6964 y(access)66 b(to)f(a)g(placeholder;)71
b(when)66 b(A)f(has)h(computed)g(the)f(v)-9 b(alue,)67
b(it)e(places)h(it)f(in)-5 b(to)66 b(the)581 7164 y(placeholder.)81
b(When)58 b(B)f(needs)h(the)g(v)-9 b(alue,)58 b(it)f(extracts)g(it)g
(from)h(placeholder,)g(blo)5 b(c)-5 b(king)581 7363 y(if)55
b(necessary)-14 b(.)614 7691 y Fj(\017)83 b Fo(\(make-placeholder\))k
Fj(!)c Fr(plac)-8 b(eholder)614 7891 y Fj(\017)83 b Fo
(\(make-placeholder)j Fr(id)17 b Fo(\))83 b Fj(!)h Fr(plac)-8
b(eholder)614 8090 y Fj(\017)83 b Fo(\(placeholder?)103
b Fr(thing)15 b Fo(\))83 b Fj(!)g Fr(b)-8 b(o)g(ole)g(an)614
8289 y Fj(\017)83 b Fo(\(placeholder-set!)j Fr(plac)-8
b(eholder)84 b(value)12 b Fo(\))614 8488 y Fj(\017)83
b Fo(\(placeholder-value)k Fr(plac)-8 b(eholder)18 b
Fo(\))83 b Fj(!)h Fr(value)581 8817 y Fo(Make-placeholder)68
b Fs(creates)c(an)i(empt)-5 b(y)65 b(placeholder.)103
b(\(The)65 b(optional)g Fr(id)82 b Fs(argumen)-5 b(t)581
9016 y(is)75 b(only)e(for)h(debugging)h(purp)5 b(oses;)84
b(the)74 b(discloser)g(for)g(placeholders)h(prin)-5 b(ts)75
b(it)e(out)h(if)581 9215 y(presen)-5 b(t.\))74 b Fo(Placeholder?)i
Fs(is)56 b(the)f(predicate)g(for)g(placeholders.)830
9415 y Fo(Placeholder-set!)76 b Fs(places)53 b(a)g(v)-9
b(alue)53 b(in)-5 b(to)53 b(a)g(placeholder.)74 b(Doing)53
b(this)g(more)h(than)581 9614 y(once)66 b(signals)h(an)f(error.)104
b Fo(Placeholder-value)69 b Fs(extracts)64 b(the)h(v)-9
b(alue)65 b(from)h(the)f(place-)581 9813 y(holder)60
b(and)f(returns)g(it.)84 b(If)59 b(the)g(placeholder)g(is)g(empt)-5
b(y)-14 b(,)60 b(it)f(blo)5 b(c)-5 b(ks)59 b(the)g(curren)-5
b(t)59 b(thread)581 10012 y(un)-5 b(til)56 b(it)f(b)5
b(ecomes)56 b(full.)3362 10511 y(75)p eop end
%%Page: 76 84
TeXDict begin 76 83 bop 1478 1046 a Fl(6.7)269 b(W)-22
b(riting)60 b(custom)g(sync)-7 b(hronization)60 b(abstractions)1478
1410 y Fs(The)49 b(bindings)h(explained)f(in)h(this)f(section)g(are)f
(part)h(of)g(the)f Fo(threads-internal)k Fs(struc-)1478
1609 y(ture.)82 b(They)58 b(are)h(concerned)f(with)g(susp)5
b(ending)60 b(threads)f(and)g(making)g(them)f(runnable)1478
1808 y(again)e(up)5 b(on)55 b(some)h(later)f(ev)-5 b(en)g(t.)1727
2008 y(T)g(ypically)-14 b(,)67 b(a)d(susp)5 b(ended)66
b(thread)e(needs)h(to)f(b)5 b(e)64 b(recorded)g(in)h(a)f(queue)g
(somewhere)1478 2207 y(for)59 b(later)g(w)-5 b(aking-up.)89
b(T)-14 b(o)59 b(allo)-5 b(w)61 b(a)e(thread)h(to)f(b)5
b(e)60 b(recorded)f(in)h(m)-5 b(ultiple)61 b(queues)f(\(sa)-5
b(y)-14 b(,)1478 2406 y(when)62 b(it)g(w)-5 b(aits)63
b(for)e(one)i(of)f(a)g(n)-5 b(um)g(b)5 b(er)63 b(of)f(ev)-5
b(en)g(ts\),)64 b(suc)-5 b(h)63 b Fr(thr)-8 b(e)g(ad)65
b(queues)77 b Fs(are)62 b(ordinary)1478 2605 y(queues)76
b(con)-5 b(taining)77 b(cells)f(that,)k(in)d(turn,)k(con)-5
b(tain)76 b(the)g(thread)g(ob)9 b(jects)75 b(themselv)-5
b(es.)1478 2805 y(Eac)g(h)50 b(thread)g(has)h(at)f(most)g(one)g(suc)-5
b(h)52 b(cell)d(asso)5 b(ciated)51 b(with)f(it)f(whic)-5
b(h)51 b(is)g(shared)g(among)1478 3004 y(all)59 b(queues)g(\(or)f
(other)h(data)f(structures\))h(holding)h(on)f(to)f(the)h(susp)5
b(ended)60 b(thread.)84 b(The)1478 3203 y(cell)55 b(is)h(cleared)f
(when)h(the)f(thread)g(is)h(w)-5 b(ok)g(en)56 b(up.)1511
3532 y Fj(\017)83 b Fo(\(thread-queue-empty?)103 b Fr(thr)-8
b(e)g(ad-queue)12 b Fo(\))85 b Fj(!)e Fr(b)-8 b(o)g(ole)g(an)1511
3731 y Fj(\017)83 b Fo(\(maybe-dequeue-thread!)104 b
Fr(thr)-8 b(e)g(ad-queue)12 b Fo(\))84 b Fj(!)g Fr(b)-8
b(o)g(ole)g(an)1478 4060 y Fo(Thread-queue-empty?)71
b Fs(atomically)36 b(c)-5 b(hec)g(ks)38 b(whether)e(the)h
Fr(thr)-8 b(e)g(ad-queue)50 b Fs(thread)37 b(queue)1478
4259 y(is)60 b(empt)-5 b(y)-14 b(,)60 b(i.e.,)h(if)e(it)g(do)5
b(es)59 b(not)g(con)-5 b(tain)60 b(non-empt)-5 b(y)60
b(cells.)86 b Fo(Maybe-dequeue-thread!)1478 4458 y Fs(pro)-5
b(visionally)54 b(dequeues)g(a)f(thread)h(from)f Fr(thr)-8
b(e)g(ad-queue)67 b Fs(if)53 b(it)g(con)-5 b(tains)55
b(one.)73 b(It)53 b(returns)1478 4657 y(the)i(dequeued)g(thread)g(or)h
Fo(#f)f Fs(if)h(the)f(queue)g(is)h(empt)-5 b(y)-14 b(.)1511
4986 y Fj(\017)83 b Fo(\(maybe-commit-and-block)k Fr(c)-8
b(el)8 b(l)17 b Fo(\))85 b Fj(!)e Fr(b)-8 b(o)g(ole)g(an)1511
5185 y Fj(\017)83 b Fo(\(maybe-commit-and-block-on-queue)89
b Fr(thr)-8 b(e)g(ad-queue)12 b Fo(\))84 b Fj(!)f Fr(b)-8
b(o)g(ole)g(an)1511 5384 y Fj(\017)83 b Fo
(\(maybe-commit-and-make-ready)88 b Fr(thr)-8 b(e)g(ad-or-queue)12
b Fo(\))85 b Fj(!)e Fr(b)-8 b(o)g(ole)g(an)1478 5713
y Fo(Maybe-commit-and-block)81 b Fs(attempts)c(to)f(commit)i(the)f
(curren)-5 b(t)77 b(prop)5 b(osal.)140 b(If)77 b(this)1478
5912 y(succeeds,)65 b(the)e(curren)-5 b(t)63 b(thread)g(is)h(blo)5
b(c)-5 b(k)g(ed,)65 b(the)d(thread's)i(cell)f(is)g(set)g(to)g
Fr(c)-8 b(el)8 b(l)17 b Fs(,)66 b(and)e Fo(#t)1478 6112
y Fs(is)53 b(returned.)73 b(Otherwise,)54 b Fo(#f)f Fs(is)g(returned.)
74 b Fo(Maybe-commit-and-block-on-queue)58 b Fs(is)1478
6311 y(lik)-5 b(e)45 b Fo(maybe-commit-and-block)p Fs(,)51
b(excepts)45 b(that)f(it)h(creates)g(a)g(fresh)h(cell)f(for)g(the)f
(thread)1478 6510 y(and)56 b(enqueues)f(it)g(in)h Fr(thr)-8
b(e)g(ad-queue)69 b Fs(if)55 b(the)g(commit)h(succeeds.)1727
6709 y Fo(Maybe-commit-and-make-ready)65 b Fs(accepts)59
b(either)h(a)g(thread)g(ob)9 b(ject)59 b(or)h(a)g(thread)1478
6909 y(queue)c(as)g(an)h(argumen)-5 b(t.)76 b(In)57 b(either)e(case,)i
Fo(maybe-commit-and-make-ready)k Fs(tries)56 b(to)1478
7108 y(commit)37 b(the)f(curren)-5 b(t)37 b(prop)5 b(osal.)69
b(If)37 b(that)f(succeeds,)41 b(it)c Fo(maybe-commit-and-make-ready)
1478 7307 y Fs(mak)-5 b(es)41 b(its)f(argumen)-5 b(t)40
b(runnable:)68 b(if)52 b Fr(thr)-8 b(e)g(ad-or-queue)54
b Fs(is)41 b(a)f(thread,)j(that)c(thread)h(is)h(made)1478
7506 y(runnable,)65 b(if)d(it)g(is)h(a)g(thread)f(queue,)i(all)f
(threads)f(on)h(the)f(queue)g(are)g(made)h(runnable.)1478
7706 y(\(In)d(the)g(latter)f(case,)j(none)e(of)g(the)g(threads)h
(actually)f(runs)h(un)-5 b(til)61 b(all)f(ha)-5 b(v)g(e)61
b(b)5 b(een)60 b(made)1478 7905 y(runnable.\))73 b Fo
(Marybe-commit-and-make-ready)58 b Fs(returns)52 b Fo(#t)h
Fs(if)g(it)f(succeeded,)h(and)g Fo(#f)1478 8104 y Fs(otherwise.)1478
8653 y Fl(6.8)269 b(Concurren)-7 b(t)90 b(ML)g(abstractions)1478
9016 y Fs(The)51 b(in)-5 b(terface)50 b(to)g(the)h(Concurren)-5
b(t)51 b(ML)g(abstractions)g(in)h(Sc)-5 b(heme)51 b(48)g(is)g(mostly)h
(analo-)1478 9215 y(gous)j(to)g(the)f(original)h(implemen)-5
b(tation)56 b(shipp)5 b(ed)56 b(with)e(SML/NJ)h([9].)74
b(Note)54 b(that)g(b)5 b(oth)1478 9415 y(the)55 b(in)-5
b(terface)55 b(and)g(implemen)-5 b(tation)57 b(are)e(new)g(and)h(ma)-5
b(y)56 b(c)-5 b(hange)56 b(in)g(future)f(releases.)1727
9614 y(The)46 b(main)i(terminological)f(di\013erence)f(is)h(that)f(CML)
h(ev)-5 b(en)g(ts)47 b(are)f(called)h Fr(r)-8 b(endezvous)1478
9813 y Fs(in)64 b(Sc)-5 b(heme)64 b(48.)99 b(F)-14 b(or)64
b(more)g(information)g(on)g(programming)h(with)e(the)g(CML)h(abstrac-)
1478 10012 y(tions,)56 b(Repp)-5 b(y's)56 b(b)5 b(o)g(ok)55
b([9])g(is)h(recommended.)4259 10511 y(76)p eop end
%%Page: 77 85
TeXDict begin 77 84 bop 581 1046 a Ff(6.8.1)225 b(Basic)75
b(rendezv)-6 b(ous)74 b(com)-6 b(binators)581 1357 y
Fs(The)55 b(basic)h(rendezv)-5 b(ous)57 b(com)-5 b(binators)56
b(liv)-5 b(e)56 b(in)f(the)g Fo(rendezvous)i Fs(structure.)614
1696 y Fj(\017)83 b Fo(never-rv)4039 b Fs(rendezv)-5
b(ous)614 1896 y Fj(\017)83 b Fo(\(always-rv)i Fr(value)12
b Fo(\))85 b Fj(!)e Fr(r)-8 b(endezvous)581 2235 y Fo(Never-rv)63
b Fs(is)g(a)e(rendezv)-5 b(ous)63 b(that)e(is)h(nev)-5
b(er)62 b(enabled)g(for)g(sync)-5 b(hronization.)94 b(\(It)61
b(is)h(the)581 2434 y(same)80 b(as)f(the)g Fo(never)h
Fs(ev)-5 b(en)g(t)79 b(in)g(CML.\))g Fo(Always-rv)h Fs(returns)g(a)f
(rendezv)-5 b(ous)80 b(that)e(is)581 2634 y(elw)-5 b(a)g(ys)78
b(enabled)g(for)f(sync)-5 b(hronization,)85 b(and)77
b(alw)-5 b(a)g(ys)79 b(yields)f(the)f(same)h(v)-9 b(alue)77
b Fr(value)12 b Fs(.)581 2833 y(\(This)56 b(is)g(the)f(same)h(as)g(the)
f Fo(alwaysEvt)i Fs(function)e(in)h(CML.\))614 3172 y
Fj(\017)83 b Fo(\(choose)i Fr(r)-8 b(endezvous)83 b(.)25
b(.)g(.)g Fo(\))103 b Fj(!)83 b Fr(r)-8 b(endezvous)581
3512 y Fo(Choose)52 b Fs(creates)f(a)g(rendezv)-5 b(ous)51
b(represen)-5 b(ting)52 b(the)f(c)-5 b(hoice)51 b(of)g(its)g(argumen)-5
b(ts:)73 b(Sync)-5 b(hro-)581 3711 y(nization)62 b(on)g(the)f
(resulting)h(rendezv)-5 b(ous)62 b(will)g(sync)-5 b(hronize)63
b(on)e(one)h(of)f(the)g(argumen)-5 b(ts)581 3910 y(to)53
b Fo(choose)p Fs(,)i(dep)5 b(ending)53 b(on)h(whic)-5
b(h)54 b(b)5 b(ecomes)53 b(enabled)h(\014rst.)73 b(\(This)54
b(is)g(the)e(same)i(as)g(the)581 4109 y Fo(choose)j Fs(function)e(in)h
(CML.\))614 4449 y Fj(\017)83 b Fo(\(wrap)h Fr(r)-8 b(endezvous)84
b(pr)-8 b(o)g(c)9 b Fo(\))83 b Fj(!)g Fr(r)-8 b(endezvous)581
4788 y Fo(Wrap)77 b Fs(wraps)g(a)f(p)5 b(ost-sync)-5
b(hronization)77 b(pro)5 b(cedure)76 b(around)h Fr(r)-8
b(endezvous)14 b Fs(:)116 b(When)76 b(the)581 4987 y(resulting)52
b(rendezv)-5 b(ous)51 b(is)h(sync)-5 b(hronized,)53 b
Fr(r)-8 b(endezvous)65 b Fs(is)51 b(sync)-5 b(hronized,)53
b(and)f(the)e(v)-9 b(alue)581 5187 y(it)61 b(yields)g(is)g(passed)h(to)
e Fr(pr)-8 b(o)g(c)9 b Fs(;)63 b(the)e(v)-9 b(alue)60
b(returned)h(b)-5 b(y)63 b Fr(pr)-8 b(o)g(c)69 b Fs(then)61
b(is)g(the)g(result)g(of)f(the)581 5386 y(sync)-5 b(hronization.)75
b(\(This)56 b(is)g(the)f(same)h(as)g(the)f(CML)g Fo(wrap)h
Fs(function.\))614 5725 y Fj(\017)83 b Fo(\(guard)h Fr(thunk)18
b Fo(\))84 b Fj(!)f Fr(r)-8 b(endezvous)581 6065 y Fo(Guard)48
b Fs(dela)-5 b(ys)48 b(the)f(creation)f(of)h(a)g(rendezv)-5
b(ous)48 b(un)-5 b(til)48 b(sync)-5 b(hronization)48
b(time:)70 b(It)46 b(returns)581 6264 y(a)f(rendezv)-5
b(ous)46 b(that)f(will,)i(up)5 b(on)46 b(sync)-5 b(hronization,)48
b(turn)e(in)-5 b(to)45 b(the)g(rendezv)-5 b(ous)46 b(returned)581
6463 y(b)-5 b(y)71 b Fr(thunk)18 b Fs(.)112 b Fo(Guard)68
b Fs(can)g(b)5 b(e)68 b(used)h(to)e(p)5 b(erform)68 b(pre-sync)-5
b(hronization)69 b(actions)f(suc)-5 b(h)69 b(as)581 6662
y(resource)56 b(allo)5 b(cation.)73 b(\(This)56 b(is)g(the)f(same)h(as)
g(the)f(CML)g Fo(guard)h Fs(function.\))614 7002 y Fj(\017)83
b Fo(\(with-nack)i Fr(pr)-8 b(o)g(c)9 b Fo(\))83 b Fj(!)g
Fr(r)-8 b(endezvous)581 7341 y Fo(With-nack)p Fs(,)45
b(lik)-5 b(e)40 b Fo(guard)p Fs(,)k(creates)39 b(a)h(dela)-5
b(y)g(ed)41 b(rendezv)-5 b(ous:)66 b(Up)5 b(on)40 b(sync)-5
b(hronization,)44 b(the)581 7540 y(rendezv)-5 b(ous)60
b(actually)f(used)h(is)g(the)f(one)g(returned)g(b)-5
b(y)62 b Fr(pr)-8 b(o)g(c)9 b Fs(.)85 b(In)60 b(addition)g(to)e(the)h
(func-)581 7740 y(tionalit)-5 b(y)65 b(o\013ered)g(b)-5
b(y)68 b Fo(guard)p Fs(,)h Fr(pr)-8 b(o)g(c)73 b Fs(receiv)-5
b(es,)68 b(as)e(an)f(argumen)-5 b(t,)69 b(another)c(rendezv)-5
b(ous)581 7939 y(whic)g(h)61 b(b)5 b(ecomes)60 b(enabled)h(when)f
Fr(another)78 b Fs(rendezv)-5 b(ous)61 b(in)-5 b(v)g(olv)g(ed)61
b(in)g(the)e(sync)-5 b(hroniza-)581 8138 y(tion)65 b(\(via)f
Fo(choose)p Fs(\))h(is)g(pic)-5 b(k)g(ed)66 b(instead)f(of)f(the)g(one)
h(pro)5 b(duced)65 b(b)-5 b(y)67 b Fr(pr)-8 b(o)g(c)9
b Fs(.)102 b(\(This)65 b(is)g(the)581 8337 y(same)56
b(as)g(the)f(CML)g Fo(withNack)i Fs(function.\))614 8677
y Fj(\017)83 b Fo(\(sync)h Fr(r)-8 b(endezvous)14 b Fo(\))84
b Fj(!)f Fr(value)614 8876 y Fj(\017)g Fo(\(select)i
Fr(r)-8 b(endezvous)83 b(.)25 b(.)g(.)g Fo(\))103 b Fj(!)83
b Fr(value)581 9215 y Fo(Sync)60 b Fs(sync)-5 b(hronizes)61
b(the)e(curren)-5 b(t)60 b(thread)f(on)h(rendezv)-5 b(ous)60
b Fr(r)-8 b(endezvous)14 b Fs(,)61 b(returning)f(the)581
9415 y(v)-9 b(alue)55 b(it)f(yields.)74 b Fo(Select)56
b Fs(sync)-5 b(hronizes)57 b(on)e(the)f(c)-5 b(hoice)55
b(of)g(its)g(argumen)-5 b(t;)56 b Fo(\(select)88 b Fg(r)6235
9440 y Fm(1)581 9614 y Fo(...)p Fg(r)917 9639 y Fd(n)1008
9614 y Fo(\))60 b Fs(is)h(seman)-5 b(tically)61 b(equiv)-9
b(alen)k(t)60 b(to)g Fo(\(sync)88 b(\(choose)g(select)g
Fg(r)5190 9639 y Fm(1)5352 9614 y Fo(...)p Fg(r)5688
9639 y Fd(n)5779 9614 y Fo(\)\))p Fs(,)62 b(but)581 9813
y(ma)-5 b(y)42 b(b)5 b(e)41 b(implemen)-5 b(ted)42 b(more)g(e\016cien)
-5 b(tly)-14 b(.)69 b(\(These)41 b(are)g(the)g(same)h(as)g(the)f(CML)g
(functions)581 10012 y Fo(sync)56 b Fs(and)g Fo(select)p
Fs(.\))3362 10511 y(77)p eop end
%%Page: 78 86
TeXDict begin 78 85 bop 1478 1046 a Ff(6.8.2)225 b(Sync)-6
b(hronous)72 b(c)-6 b(hannels)1478 1365 y Fs(The)84 b
Fo(rendezvous-channels)k Fs(structure)c(con)-5 b(tains)85
b(abstractions)g(for)f(bidirectional,)1478 1564 y(sync)-5
b(hronous)57 b(c)-5 b(hannels)57 b(for)e(comm)-5 b(unicating)57
b(b)5 b(et)-5 b(w)g(een)55 b(t)-5 b(w)g(o)55 b(threads.)1511
1916 y Fj(\017)83 b Fo(\(make-channel\))i Fj(!)f Fr(channel)1511
2115 y Fj(\017)f Fo(\(channel?)102 b Fr(x)20 b Fo(\))83
b Fj(!)g Fr(b)-8 b(o)g(ole)g(an)1478 2467 y Fo(Make-channel)75
b Fs(creates)e(a)g(new)h(sync)-5 b(hronous)75 b(c)-5
b(hannel.)128 b(\(This)74 b(is)g(the)f(same)h(as)g(the)1478
2666 y(CML)55 b Fo(channel)i Fs(function.\))73 b Fo(Channel?)i
Fs(is)56 b(the)f(predicate)g(for)g(sync)-5 b(hronous)58
b(c)-5 b(hannels.)1511 3018 y Fj(\017)83 b Fo(\(send-rv)h
Fr(channel)h(value)12 b Fo(\))85 b Fj(!)e Fr(r)-8 b(endezvous)1511
3217 y Fj(\017)83 b Fo(\(send)h Fr(channel)h(value)12
b Fo(\))1478 3569 y(Send-rv)57 b Fs(creates)e(a)h(rendezv)-5
b(ous)56 b(that,)g(up)5 b(on)56 b(sync)-5 b(hronization,)57
b(sends)g(message)g Fr(value)1478 3768 y Fs(on)65 b(the)g(sync)-5
b(hronous)67 b(c)-5 b(hannel)66 b Fr(channel)17 b Fs(.)105
b(The)66 b(sync)-5 b(hronization)66 b(suceeds)g(only)f(when)1478
3967 y(another)57 b(thread)g(attempts)g(to)g(receiv)-5
b(e)57 b(a)g(message)i(from)e Fr(channel)17 b Fs(.)82
b(\(This)58 b(is)g(the)f(same)1478 4166 y(as)48 b(the)g(CML)g
Fo(sendEvt)h Fs(function.\))71 b Fo(Send)48 b Fs(directly)g(sends)h(a)f
(message)h Fr(value)61 b Fs(on)48 b(c)-5 b(hannel)1478
4366 y Fr(channel)17 b Fs(;)96 b Fo(\(send)88 b Fg(c)f(v)6
b Fo(\))83 b Fs(is)f(equiv)-9 b(alen)k(t)81 b(to)g Fo(\(sync)88
b(\(send-rv)g Fg(c)f(v)6 b Fo(\)\))p Fs(.)154 b(\()p
Fo(Send)82 b Fs(is)g(the)1478 4565 y(same)56 b(as)g(the)f(CML)g
Fo(send)h Fs(function.\))1511 4916 y Fj(\017)83 b Fo(\(receive-rv)i
Fr(channel)17 b Fo(\))85 b Fj(!)e Fr(r)-8 b(endezvous)1511
5116 y Fj(\017)83 b Fo(\(receive)h Fr(channel)17 b Fo(\))1478
5467 y(Receive-rv)57 b Fs(creates)d(a)h(rendezv)-5 b(ous)56
b(whic)-5 b(h,)56 b(up)5 b(on)56 b(sync)-5 b(hronization,)56
b(receiv)-5 b(es)55 b(a)g(mes-)1478 5667 y(sage)79 b(on)g(c)-5
b(hannel)79 b Fr(channel)17 b Fs(.)146 b(\(This)79 b(is)g(the)g(same)g
(as)g(the)f(CML)h Fo(recEvt)h Fs(function.\))1478 5866
y Fo(Receive)86 b Fs(directly)e(receiv)-5 b(es)85 b(a)g(message)h(on)g
(c)-5 b(hannel)86 b Fr(channel)17 b Fs(;)101 b Fo(\(receive)89
b Fg(c)e(v)6 b Fo(\))86 b Fs(is)1478 6065 y(equiv)-9
b(alen)k(t)69 b(to)h Fo(\(sync)88 b(\(receive-rv)h Fg(c)e(v)6
b Fo(\)\))p Fs(.)119 b(\()p Fo(Receive)71 b Fs(is)g(the)f(same)h(as)g
(the)e(CML)1478 6264 y Fo(recv)56 b Fs(function.\))1478
6764 y Ff(6.8.3)225 b(Sync)-6 b(hronous)72 b(v)-12 b(ariables)1478
7083 y Fs(Tw)-5 b(o)37 b(structures)g(con)-5 b(tain)37
b(abstractions)h(for)f(sync)-5 b(hronous)38 b(v)-9 b(ariables:)65
b(the)37 b Fo(rendezvous-placeholders)1478 7282 y Fs(structure)f(for)h
(so-called)h Fr(plac)-8 b(eholders)51 b Fs(\(write-once)36
b(v)-9 b(ariables\),)41 b(and)c(the)g Fo(rendezvous-jars)1478
7481 y Fs(structure)55 b(for)g Fr(jars)69 b Fs(\(whic)-5
b(h)55 b(allo)-5 b(w)56 b(m)-5 b(ultiple)57 b(up)5 b(dates.\))1478
7947 y Fp(Placeholders)1478 8266 y Fs(Placeholders)76
b(are)g(write-once)f(v)-9 b(ariables.)136 b(The)76 b(placeholders)h
(implemen)-5 b(ted)77 b(b)-5 b(y)76 b(the)1478 8465 y
Fo(rendezvous-placeholders)46 b Fs(structure)c(o\013er)f(equiv)-9
b(alen)k(t)42 b(functionalit)-5 b(y)42 b(to)f(the)h(place-)1478
8664 y(holders)75 b(implemen)-5 b(ted)75 b(b)-5 b(y)74
b(the)g Fo(placeholders)i Fs(structure)d(\(see)h(Section)g(6.6.2\),)k
(but)1478 8864 y(additionally)64 b(allo)-5 b(w)64 b(con)-5
b(v)g(erting)64 b(a)g(placeholder)g(in)-5 b(to)64 b(a)g(rendezv)-5
b(ous.)100 b(Note,)65 b(ho)-5 b(w)g(ev)g(er,)1478 9063
y(that)48 b(placeholders)h(from)f Fo(placeholders)j Fs(are)d
(di\013eren)-5 b(t)49 b(from)f(and)h(not)f(in)-5 b(terc)g(hangable)1478
9262 y(with)55 b(placeholders)h(from)g Fo(rendezvous-placeholders)p
Fs(.)1511 9614 y Fj(\017)83 b Fo(\(make-placeholder\))j
Fj(!)d Fr(plac)-8 b(eholder)1511 9813 y Fj(\017)83 b
Fo(\(make-placeholder)j Fr(id)17 b Fo(\))83 b Fj(!)g
Fr(plac)-8 b(eholder)1511 10012 y Fj(\017)83 b Fo(\(placeholder?)102
b Fr(x)20 b Fo(\))83 b Fj(!)h Fr(b)-8 b(o)g(ole)g(an)4259
10511 y Fs(78)p eop end
%%Page: 79 87
TeXDict begin 79 86 bop 581 1046 a Fo(Make-placeholder)68
b Fs(creates)c(an)i(empt)-5 b(y)65 b(placeholder.)103
b(\(The)65 b(optional)g Fr(id)82 b Fs(argumen)-5 b(t)581
1245 y(is)75 b(only)e(for)h(debugging)h(purp)5 b(oses;)84
b(the)74 b(discloser)g(for)g(placeholders)h(prin)-5 b(ts)75
b(it)e(out)h(if)581 1445 y(presen)-5 b(t.\))89 b(\(This)60
b(is)h(the)f(same)h(as)f(the)g(CML)g Fo(iVar)h Fs(function.\))88
b Fo(Placeholder?)i Fs(is)61 b(the)581 1644 y(predicate)55
b(for)g(placeholders.)614 2007 y Fj(\017)83 b Fo(\(placeholder-set!)j
Fr(plac)-8 b(eholder)84 b(value)12 b Fo(\))581 2371 y(Placeholder-set!)
126 b Fs(places)72 b(a)f(v)-9 b(alue)72 b(in)-5 b(to)72
b(a)f(placeholder.)124 b(Doing)72 b(this)g(more)g(than)581
2570 y(once)55 b(signals)i(an)f(error.)74 b(\(This)55
b(is)h(the)f(same)h(as)g(the)f(CML)g Fo(iPut)h Fs(function.\))614
2934 y Fj(\017)83 b Fo(\(placeholder-value-rv)k Fr(plac)-8
b(eholder)18 b Fo(\))84 b Fj(!)f Fr(r)-8 b(endezvous)614
3133 y Fj(\017)83 b Fo(\(placeholder-value)k Fr(plac)-8
b(eholder)18 b Fo(\))83 b Fj(!)h Fr(value)581 3497 y
Fo(Placeholder-value)63 b Fs(extracts)58 b(the)h(v)-9
b(alue)59 b(from)h(the)f(placeholder)h(and)g(returns)g(it.)86
b(If)581 3696 y(the)42 b(placeholder)g(is)h(empt)-5 b(y)-14
b(,)45 b(it)c(blo)5 b(c)-5 b(ks)43 b(the)e(curren)-5
b(t)42 b(thread)g(un)-5 b(til)43 b(it)f(b)5 b(ecomes)42
b(full.)69 b(\(This)581 3895 y(is)54 b(the)f(same)g(as)h(the)f(CML)g
Fo(iGet)g Fs(function.\))73 b Fo(Placeholder-value-rv)57
b Fs(creates)52 b(a)h(ren-)581 4095 y(dezv)-5 b(ous)44
b(that)f(will,)j(up)5 b(on)44 b(sync)-5 b(hronization,)47
b(extrasct)42 b(the)h(v)-9 b(alue)43 b(from)g(the)g(placeholder)581
4294 y(and)56 b(yield)f(it)g(as)h(a)g(result.)74 b(\(This)55
b(is)h(the)f(same)h(as)g(the)f(CML)h Fo(iGetEvt)g Fs(function.\))581
4781 y Fp(Jars)581 5107 y Fs(A)62 b(jar)g(is)g(a)g(sync)-5
b(hronous)64 b(v)-9 b(ariable)62 b(whic)-5 b(h)63 b(can)f(ha)-5
b(v)g(e)62 b(t)-5 b(w)g(o)63 b(states:)87 b(full)62 b(and)h(empt)-5
b(y)-14 b(.)94 b(It)581 5307 y(b)5 b(ecomes)69 b(full)g(when)g(a)g(v)-9
b(alue)69 b(it)g(put)g(in)-5 b(to)69 b(it;)75 b(putting)69
b(a)g(v)-9 b(alue)69 b(in)-5 b(to)69 b(a)g(full)g(jar)g(is)g(an)581
5506 y(error.)79 b(Con)-5 b(v)g(ersely)-14 b(,)59 b(it)d(b)5
b(ecomes)58 b(empt)-5 b(y)57 b(when)g(a)g(v)-9 b(alue)57
b(is)g(tak)-5 b(en)57 b(out)g(of)g(it.)79 b(T)-14 b(rying)57
b(to)581 5705 y(tak)-5 b(e)59 b(a)g(v)-9 b(alue)58 b(out)h(of)g(an)g
(empt)-5 b(y)59 b(jar)g(blo)5 b(c)-5 b(ks)59 b(un)-5
b(til)59 b(it)g(b)5 b(ecomes)59 b(full.)85 b(\(Jars)60
b(are)e(similar)581 5904 y(to)d(ID-90)h(M-structures.\))74
b(Jars)56 b(liv)-5 b(e)56 b(in)f(the)g Fo(rendezvous-jars)j
Fs(structure.)614 6268 y Fj(\017)83 b Fo(\(make-jar\))i
Fj(!)e Fr(jar)614 6467 y Fj(\017)g Fo(\(make-jar)i Fr(id)17
b Fo(\))83 b Fj(!)g Fr(jar)614 6667 y Fj(\017)g Fo(\(jar?)101
b Fr(x)20 b Fo(\))83 b Fj(!)h Fr(b)-8 b(o)g(ole)g(an)581
7030 y Fo(Make-jar)43 b Fs(creates)d(an)h(empt)-5 b(y)41
b(jar.)69 b(\(The)41 b(optional)g Fr(id)58 b Fs(argumen)-5
b(t)42 b(is)g(only)f(for)g(debugging)581 7230 y(purp)5
b(oses;)53 b(the)d(discloser)h(for)e(jars)h(prin)-5 b(ts)51
b(it)f(out)f(if)h(presen)-5 b(t.\))72 b(\(This)50 b(is)h(the)e(same)i
(as)f(the)581 7429 y(CML)55 b Fo(mVar)h Fs(function.\))74
b Fo(Jar?)g Fs(is)56 b(the)f(predicate)g(for)g(jars.)614
7759 y Fj(\017)83 b Fo(\(jar-put!)i Fr(jar)e(value)12
b Fo(\))581 8090 y(Jar-put!)84 b Fs(places)58 b(a)g(v)-9
b(alue)58 b(in)-5 b(to)59 b(a)f(jar)g(if)g(it)f(is)i(empt)-5
b(y)-14 b(.)83 b(Applying)60 b Fo(jar-put!)84 b Fs(to)57
b(a)h(full)581 8289 y(jar)d(is)h(an)g(error.)74 b(\(This)55
b(is)h(the)f(same)h(as)g(the)f(CML)g Fo(mPut)i Fs(function.\))614
8653 y Fj(\017)83 b Fo(\(jar-take-rv)i Fr(plac)-8 b(eholder)18
b Fo(\))84 b Fj(!)f Fr(r)-8 b(endezvous)614 8852 y Fj(\017)83
b Fo(\(jar-take)i Fr(plac)-8 b(eholder)18 b Fo(\))84
b Fj(!)f Fr(value)581 9215 y Fo(Jar-take)68 b Fs(tak)-5
b(es)66 b(a)h(v)-9 b(alue)66 b(from)h(a)f(full)h(jar,)i(empt)-5
b(ying)67 b(it)g(in)f(the)h(pro)5 b(cess.)108 b(If)66
b(the)g(jar)581 9415 y(is)57 b(empt)-5 b(y)-14 b(,)57
b Fo(jar-take)g Fs(blo)5 b(c)-5 b(ks)57 b(un)-5 b(til)57
b(it)e(b)5 b(ecomes)57 b(full.)76 b(\(This)57 b(is)g(the)e(same)i(as)g
(the)f(CML)581 9614 y Fo(mTake)41 b Fs(function.\))69
b Fo(Jar-take-rv)42 b Fs(creates)e(a)g(rendezv)-5 b(ous)41
b(that,)i(up)5 b(on)41 b(sync)-5 b(hronization,)581 9813
y(will)54 b(extract)e(the)h(v)-9 b(alue)53 b(from)g(a)h(jar)f(and)h
(empt)-5 b(y)53 b(it)h(in)f(the)g(pro)5 b(cess.)74 b(\(This)54
b(is)g(the)f(same)581 10012 y(as)j(the)f(CML)g Fo(mTakeEvt)i
Fs(function.\))3362 10511 y(79)p eop end
%%Page: 80 88
TeXDict begin 80 87 bop 1478 1046 a Ff(6.8.4)225 b(Timeouts)1478
1353 y Fs(The)37 b Fo(rendezvous-time)j Fs(structure)e(allo)-5
b(ws)38 b(creating)f(rendezv)-5 b(ous)38 b(for)g(alarms)g(and)g(time-)
1478 1552 y(outs:)1511 1884 y Fj(\017)83 b Fo(\(after-time-rv)i
Fr(mil)8 b(lise)-8 b(c)g(onds)14 b Fo(\))84 b Fj(!)f
Fr(r)-8 b(endezvous)1511 2083 y Fj(\017)83 b Fo(\(at-real-time-rv)j
Fr(time)12 b Fo(\))84 b Fj(!)f Fr(r)-8 b(endezvous)1478
2415 y Fo(After-time-rv)47 b Fs(creates)e(a)g(rendezv)-5
b(ous)46 b(that)e(b)5 b(ecomes)46 b(enabled)f(at)g(time)g(in)-5
b(terv)c(al)45 b Fr(mil-)1478 2615 y(lise)-8 b(c)g(onds)79
b Fs(after)64 b(sync)-5 b(hronization.)104 b(\(Actually)-14
b(,)66 b Fr(mil)8 b(lise)-8 b(c)g(onds)80 b Fs(is)65
b(a)h(minim)-5 b(um)67 b(w)-5 b(aiting)1478 2814 y(time;)43
b(the)37 b(actual)h(dela)-5 b(y)37 b(ma)-5 b(y)38 b(b)5
b(e)37 b(longer.\))68 b(\(This)38 b(is)g(the)f(same)h(as)g(the)f(CML)h
Fo(timeOutEvt)1478 3013 y Fs(function.\))83 b Fo(At-real-time-rv)61
b Fs(creates)d(a)h(rendezv)-5 b(ous)59 b(that)f(b)5 b(ecomes)59
b(enabled)g(at)f(an)1478 3212 y(absolute)d(time)f(sp)5
b(eci\014ed)55 b(b)-5 b(y)57 b Fr(time)12 b Fs(;)55 b(this)g(absolute)g
(time)f(is)h(sp)5 b(eci\014ed)55 b(in)g(the)f(same)h(w)-5
b(a)g(y)1478 3412 y(as)65 b(the)f(return)h(v)-9 b(alue)64
b Fo(real-time)j Fs(from)e(the)f Fo(time)i Fs(structure.)101
b(\(This)66 b(is)f(the)f(same)i(as)1478 3611 y(the)55
b(CML)g Fo(atTimeEvt)i Fs(function.\))1478 4076 y Ff(6.8.5)225
b(CML)74 b(to)h(Sc)-6 b(heme)73 b(corresp)6 b(ondence)1478
4382 y Fs(The)54 b(follo)-5 b(wing)55 b(table)f(lists)h(the)f(Sc)-5
b(heme)55 b(names)g(that)e(corresp)5 b(ond)55 b(to)f(particular)g(CML)
1478 4581 y(names.)2935 4920 y(CML)h(name)253 b(Sc)-5
b(heme)56 b(name)p 2835 4986 3014 7 v 2835 4986 V 3906
5126 a Fo(rendezvous)2935 5325 y(never)636 b(never-rv)2935
5524 y(alwaysEvt)288 b(always-rv)2935 5724 y(choose)549
b(choose)2935 5923 y(wrap)723 b(wrap)2935 6122 y(guard)636
b(guard)2935 6321 y(withNack)375 b(with-nack)2935 6521
y(sync)723 b(sync)2935 6720 y(select)549 b(select)3514
6991 y(rendezvous-channels)2935 7190 y(channel)462 b(make-channel)2935
7389 y(sendEvt)g(send-rv)2935 7588 y(send)723 b(send)2935
7788 y(recEvt)549 b(receive-rv)2935 7987 y(rec)810 b(receive)3340
8258 y(rendezvous-placeholders)2935 8457 y(iVar)723 b(make-placeholder)
2935 8656 y(iPut)g(placeholder-set!)2935 8855 y(iGet)g
(placeholder-value)2935 9055 y(iGetEvt)462 b(placeholder-value-rv)3688
9325 y(rendezvous-jars)2935 9525 y(mVar)723 b(make-jar)2935
9724 y(mTake)636 b(jar-take)2935 9923 y(mTakeEvt)375
b(jar-take-rv)4259 10511 y Fs(80)p eop end
%%Page: 81 89
TeXDict begin 81 88 bop 2038 1046 a Fo(mPut)723 b(jar-put!)2792
1317 y(rendezvous-time)2038 1516 y(timeOutEvt)201 b(after-time-rv)2038
1715 y(atTimeEvt)288 b(at-real-time-rv)3362 10511 y Fs(81)p
eop end
%%Page: 82 90
TeXDict begin 82 89 bop 1478 2299 a Fn(Chapter)129 b(7)1478
3138 y Fq(Mixing)156 b(Sc)-13 b(heme)155 b(48)h(and)f(C)1478
4009 y Fs(This)53 b(c)-5 b(hapter)52 b(describ)5 b(es)53
b(an)g(in)-5 b(terface)51 b(for)h(calling)h(C)f(functions)h(from)f(Sc)
-5 b(heme,)54 b(calling)1478 4208 y(Sc)-5 b(heme)38 b(functions)h(from)
f(C,)g(and)h(allo)5 b(cating)37 b(storage)h(in)h(the)e(Sc)-5
b(heme)39 b(heap..)69 b(Sc)-5 b(heme)38 b(48)1478 4408
y(manages)60 b(stub)f(functions)g(in)g(C)g(that)f(negotiate)g(b)5
b(et)-5 b(w)g(een)59 b(the)f(calling)h(con)-5 b(v)g(en)g(tions)61
b(of)1478 4607 y(Sc)-5 b(heme)77 b(and)f(C)g(and)h(the)f(memory)g(allo)
5 b(cation)76 b(p)5 b(olicies)77 b(of)f(b)5 b(oth)75
b(w)-5 b(orlds.)138 b(No)76 b(stub)1478 4806 y(generator)55
b(is)h(a)-5 b(v)c(ailable)55 b(y)-5 b(et,)55 b(but)h(writing)f(stubs)h
(is)g(a)g(straigh)-5 b(tforw)g(ard)56 b(task.)1478 5398
y Fl(7.1)269 b(Av)-15 b(ailable)89 b(facilities)1478
5777 y Fs(The)55 b(follo)-5 b(wing)56 b(facilities)f(are)h(a)-5
b(v)c(ailable)55 b(for)g(in)-5 b(terfacing)56 b(b)5 b(et)-5
b(w)g(een)55 b(Sc)-5 b(heme)56 b(48)f(and)h(C:)1727 6133
y Fj(\017)83 b Fs(Sc)-5 b(heme)56 b(co)5 b(de)55 b(can)g(call)h(C)f
(functions.)1727 6497 y Fj(\017)83 b Fs(The)63 b(external)g(in)-5
b(terface)63 b(pro)-5 b(vides)65 b(full)e(in)-5 b(trosp)5
b(ection)64 b(for)f(all)h(Sc)-5 b(heme)64 b(ob)9 b(jects.)1893
6696 y(External)51 b(co)5 b(de)51 b(ma)-5 b(y)52 b(insp)5
b(ect,)52 b(mo)5 b(dify)-14 b(,)52 b(and)g(allo)5 b(cate)50
b(Sc)-5 b(heme)53 b(ob)9 b(jects)51 b(arbitrar-)1893
6895 y(ily)-14 b(.)1727 7260 y Fj(\017)83 b Fs(External)55
b(co)5 b(de)55 b(ma)-5 b(y)55 b(raise)h(exceptions)f(bac)-5
b(k)56 b(to)f(Sc)-5 b(heme)56 b(48)f(to)g(signal)h(errors.)1727
7624 y Fj(\017)83 b Fs(External)47 b(co)5 b(de)47 b(ma)-5
b(y)48 b(call)g(bac)-5 b(k)48 b(in)-5 b(to)48 b(Sc)-5
b(heme.)72 b(Sc)-5 b(heme)48 b(48)g(correctly)f(unrolls)i(the)1893
7823 y(pro)5 b(cess)56 b(stac)-5 b(k)55 b(on)h(non-lo)5
b(cal)56 b(exits.)1727 8187 y Fj(\017)83 b Fs(External)51
b(mo)5 b(dules)52 b(ma)-5 b(y)53 b(register)e(bindings)i(of)f(names)g
(to)g(v)-9 b(alues)51 b(with)h(a)f(cen)-5 b(tral)1893
8387 y(registry)76 b(accessible)h(from)f(Sc)-5 b(heme.)137
b(Con)-5 b(v)g(ersely)-14 b(,)83 b(Sc)-5 b(heme)76 b(co)5
b(de)76 b(can)g(register)1893 8586 y(shared)56 b(bindings)h(for)e
(access)h(b)-5 b(y)56 b(C)f(co)5 b(de.)1478 9093 y Ff(7.1.1)225
b(Sc)-6 b(heme)73 b(structures)1478 9415 y Fs(The)38
b(structure)f Fo(external-calls)j Fs(has)f(most)f(of)g(the)f(Sc)-5
b(heme)39 b(functions)f(describ)5 b(ed)38 b(here.)1478
9614 y(The)74 b(others)g(are)g(in)h Fo(dynamic-externals)p
Fs(,)82 b(whic)-5 b(h)75 b(has)f(the)g(functions)h(for)f(dynamic)1478
9813 y(loading)66 b(and)f(name)h(lo)5 b(okup)65 b(from)g(Section)g
(7.4,)j(and)d Fo(shared-bindings)p Fs(,)71 b(whic)-5
b(h)66 b(has)1478 10012 y(the)55 b(additional)h(shared-binding)i
(functions)d(describ)5 b(ed)56 b(in)g(section)f(7.2.3.)4259
10511 y(82)p eop end
%%Page: 83 91
TeXDict begin 83 90 bop 581 1046 a Ff(7.1.2)225 b(C)75
b(naming)f(con)-6 b(v)g(en)g(tions)581 1367 y Fs(The)61
b(names)h(of)e(all)h(of)g(Sc)-5 b(heme)62 b(48's)f(visible)g(C)g
(bindings)i(b)5 b(egin)61 b(with)f(`)p Fo(s48)p 5529
1367 53 7 v 64 w Fs(')h(\(for)f(pro-)581 1567 y(cedures)66
b(and)g(v)-9 b(ariables\))66 b(or)f(`)p Fo(S48)p 2810
1567 V 64 w Fs(')h(\(for)f(macros\).)105 b(Whenev)-5
b(er)65 b(a)h(C)f(name)h(is)g(deriv)-5 b(ed)581 1766
y(from)50 b(a)h(Sc)-5 b(heme)50 b(iden)-5 b(ti\014er,)52
b(w)-5 b(e)50 b(replace)g(`)p Fo(-)p Fs(')h(with)f(`)p
3886 1766 V 63 w(')g(and)h(con)-5 b(v)g(ert)50 b(letters)f(to)h(lo)-5
b(w)g(ercase)581 1965 y(for)50 b(pro)5 b(cedures)50 b(and)g(upp)5
b(ercase)50 b(for)g(macros.)73 b(A)49 b(\014nal)i(`)p
Fo(?)p Fs(')72 b(con)-5 b(v)g(erted)50 b(to)f(`)p 5409
1965 V 63 w Fo(p)p Fs(')h(\(`)p 5766 1965 V 62 w Fo(P)p
Fs(')h(in)f(C)581 2164 y(macro)h(names\).)73 b(A)50 b(\014nal)h(`)p
Fo(!)p Fs(')73 b(is)51 b(dropp)5 b(ed.)73 b(Th)-5 b(us)51
b(the)g(C)f(macro)h(for)f(Sc)-5 b(heme's)52 b Fo(pair?)73
b Fs(is)581 2364 y Fo(S48)p 852 2364 V 63 w(PAIR)p 1263
2364 V 64 w(P)59 b Fs(and)h(the)e(one)h(for)g Fo(set-car!)86
b Fs(is)60 b Fo(S48)p 3869 2364 V 63 w(SET)p 4193 2364
V 64 w(CAR)p Fs(.)f(Pro)5 b(cedures)59 b(and)h(macros)581
2563 y(that)55 b(do)h(not)f(c)-5 b(hec)g(k)55 b(the)g(t)-5
b(yp)5 b(es)55 b(of)g(their)g(argumen)-5 b(ts)57 b(ha)-5
b(v)g(e)56 b(`)p Fo(unsafe)p Fs(')g(in)g(their)f(names.)830
2770 y(All)61 b(of)f(the)g(C)h(functions)g(and)g(macros)g(describ)5
b(ed)61 b(ha)-5 b(v)g(e)62 b(protot)-5 b(yp)5 b(es)60
b(or)h(de\014nitions)581 2969 y(in)e(the)e(\014le)i Fo(c/scheme48.h)p
Fs(.)84 b(The)58 b(C)g(t)-5 b(yp)5 b(e)57 b(for)h(Sc)-5
b(heme)59 b(v)-9 b(alues)58 b(is)h(de\014ned)g(there)e(to)h(b)5
b(e)581 3169 y Fo(s48)p 852 3169 V 63 w(value)p Fs(.)581
3676 y Ff(7.1.3)225 b(Garbage)74 b(collection)581 3997
y Fs(Sc)-5 b(heme)43 b(48)f(uses)i(a)e(cop)-5 b(ying)43
b(garbage)f(collector.)69 b(The)42 b(collector)g(m)-5
b(ust)43 b(b)5 b(e)42 b(able)h(to)f(lo)5 b(cate)581 4197
y(all)49 b(references)g(to)g(ob)9 b(jects)49 b(allo)5
b(cated)48 b(in)h(the)g(Sc)-5 b(heme)50 b(48)f(heap)g(in)h(order)f(to)g
(ensure)g(that)581 4396 y(storage)g(is)g(not)f(reclaimed)h(prematurely)
f(and)h(to)f(up)5 b(date)48 b(references)g(to)g(ob)9
b(jects)49 b(mo)-5 b(v)g(ed)581 4595 y(b)g(y)48 b(the)g(collector.)70
b(The)48 b(garbage)g(collector)f(ma)-5 b(y)48 b(run)g(whenev)-5
b(er)48 b(an)g(ob)9 b(ject)47 b(is)h(allo)5 b(cated)581
4794 y(in)52 b(the)g(heap.)73 b(C)52 b(v)-9 b(ariables)52
b(whose)g(v)-9 b(alues)52 b(are)g(Sc)-5 b(heme)52 b(48)g(ob)9
b(jects)52 b(and)g(whic)-5 b(h)53 b(are)f(liv)-5 b(e)581
4994 y(across)46 b(heap)f(allo)5 b(cation)45 b(calls)h(need)f(to)g(b)5
b(e)44 b(registered)h(with)g(the)g(garbage)g(collector.)70
b(See)581 5193 y(section)56 b(7.8)f(for)g(more)h(information.)581
5784 y Fl(7.2)270 b(Shared)90 b(bindings)581 6163 y Fs(Shared)85
b(bindings)g(are)f(the)f(means)i(b)-5 b(y)84 b(whic)-5
b(h)84 b(named)h(v)-9 b(alues)84 b(are)f(shared)i(b)5
b(et)-5 b(w)g(een)581 6362 y(Sc)g(heme)72 b(co)5 b(de)71
b(and)h(C)f(co)5 b(de.)122 b(There)71 b(are)h(t)-5 b(w)g(o)71
b(separate)h(tables)f(of)h(shared)g(bindings,)581 6562
y(one)58 b(for)f(v)-9 b(alues)58 b(de\014ned)g(in)g(Sc)-5
b(heme)58 b(and)g(accessed)g(from)g(C)g(and)g(the)f(other)g(for)h(v)-9
b(alues)581 6761 y(going)64 b(the)e(other)h(w)-5 b(a)g(y)-14
b(.)97 b(Shared)64 b(bindings)g(actually)f(bind)h(names)g(to)e(cells,)k
(to)c(allo)-5 b(w)64 b(a)581 6960 y(name)56 b(to)g(b)5
b(e)55 b(lo)5 b(ok)-5 b(ed)55 b(up)i(b)5 b(efore)55 b(it)g(has)h(b)5
b(een)56 b(assigned.)76 b(This)57 b(is)f(necessary)g(b)5
b(ecause)56 b(C)581 7159 y(initialization)62 b(co)5 b(de)61
b(ma)-5 b(y)62 b(b)5 b(e)62 b(run)g(b)5 b(efore)61 b(or)h(after)f(the)g
(corresp)5 b(onding)63 b(Sc)-5 b(heme)62 b(co)5 b(de,)581
7359 y(dep)g(ending)51 b(on)f(whether)f(the)g(Sc)-5 b(heme)51
b(co)5 b(de)49 b(is)i(in)f(the)f(resumed)i(image)f(or)g(is)h(run)f(in)g
(the)581 7558 y(curren)-5 b(t)56 b(session.)581 8065
y Ff(7.2.1)225 b(Exp)6 b(orting)75 b(Sc)-6 b(heme)73
b(v)-12 b(alues)75 b(to)g(C)614 8378 y Fj(\017)83 b Fo
(\(define-exported-binding)88 b Fr(name)83 b(value)12
b Fo(\))85 b Fj(!)e Fr(shar)-8 b(e)g(d-binding)614 8693
y Fj(\017)83 b Fo(s48)p 1051 8693 V 64 w(value)h(s48)p
1895 8693 V 63 w(get)p 2219 8693 V 63 w(imported)p 2978
8693 V 64 w(binding\(char)h(*name\))614 8893 y Fj(\017)e
Fo(s48)p 1051 8893 V 64 w(value)h(S48)p 1895 8893 V 63
w(SHARED)p 2480 8893 V 64 w(BINDING)p 3153 8893 V 64
w(REF\(s48)p 3826 8893 V 64 w(value)f(shared)p 4930 8893
V 64 w(binding\))581 9215 y(Define-exported-binding)h
Fs(mak)-5 b(es)81 b Fr(value)94 b Fs(a)-5 b(v)c(ailable)80
b(to)g(C)g(co)5 b(de)80 b(under)h(as)f Fr(name)581 9415
y Fs(whic)-5 b(h)47 b(m)-5 b(ust)48 b(b)5 b(e)46 b(a)h
Fr(string)15 b Fs(,)49 b(creating)d(a)h(new)f(shared)i(binding)f(if)g
(necessary)-14 b(.)71 b(The)47 b(C)f(func-)581 9614 y(tion)69
b Fo(s48)p 1207 9614 V 63 w(get)p 1531 9614 V 63 w(imported)p
2290 9614 V 64 w(binding)h Fs(returns)f(the)f(shared)i(binding)f
(de\014ned)h(for)e Fo(name)p Fs(,)581 9813 y(again)63
b(creating)f(it)h(if)f(necessary)-14 b(.)96 b(The)63
b(C)f(macro)h Fo(S48)p 4124 9813 V 63 w(SHARED)p 4709
9813 V 64 w(BINDING)p 5382 9813 V 64 w(REF)g Fs(derefer-)581
10012 y(ences)56 b(a)f(shared)h(binding,)h(returning)f(its)f(curren)-5
b(t)56 b(v)-9 b(alue.)3362 10511 y(83)p eop end
%%Page: 84 92
TeXDict begin 84 91 bop 1478 1046 a Ff(7.2.2)225 b(Exp)6
b(orting)74 b(C)h(v)-12 b(alues)75 b(to)g(Sc)-6 b(heme)1511
1354 y Fj(\017)83 b Fo(void)h(s48)p 2380 1354 53 7 v
63 w(define)p 2965 1354 V 64 w(exported)p 3725 1354 V
64 w(binding\(char)h(*name,)f(s48)p 5785 1354 V 63 w(value)g(v\))1511
1656 y Fj(\017)f Fo(\(lookup-imported-binding)k Fr(string)15
b Fo(\))84 b Fj(!)f Fr(shar)-8 b(e)g(d-binding)1511 1855
y Fj(\017)83 b Fo(\(shared-binding-ref)j Fr(shar)-8 b(e)g(d-binding)15
b Fo(\))84 b Fj(!)f Fr(value)1478 2158 y Fs(These)h(are)g(used)g(to)g
(de\014ne)g(shared)h(bindings)g(from)f(C)g(and)h(to)e(access)h(them)g
(from)1478 2357 y(Sc)-5 b(heme.)72 b(Again,)48 b(if)f(a)g(name)g(is)h
(lo)5 b(ok)-5 b(ed)47 b(up)g(b)5 b(efore)46 b(it)h(has)g(b)5
b(een)47 b(de\014ned,)i(a)e(new)g(binding)1478 2556 y(is)56
b(created)e(for)i(it.)1727 2757 y(The)64 b(common)h(case)g(of)f(exp)5
b(orting)64 b(a)g(C)h(function)f(to)g(Sc)-5 b(heme)65
b(can)f(b)5 b(e)64 b(done)h(using)1478 2956 y(the)55
b(macro)g Fo(S48)p 2533 2956 V 64 w(EXPORT)p 3119 2956
V 63 w(FUNCTION\()p Fr(name)12 b Fo(\))p Fs(.)77 b(This)56
b(expands)g(in)-5 b(to)1478 3294 y Fo(s48)p 1749 3294
V 63 w(define)p 2334 3294 V 64 w(exported)p 3094 3294
V 64 w(binding\(")p Fr(name)12 b Fo(",)4180 3493 y(s48)p
4451 3493 V 63 w(enter)p 4949 3493 V 64 w(pointer\()p
Fr(name)g Fo(\)\))1478 3830 y Fs(whic)-5 b(h)59 b(b)5
b(o)-5 b(xes)59 b(the)g(function)g(in)-5 b(to)59 b(a)g(Sc)-5
b(heme)59 b(b)-5 b(yte)59 b(v)-5 b(ector)58 b(and)h(then)g(exp)5
b(orts)58 b(it.)84 b(Note)1478 4029 y(that)55 b Fo(s48)p
2109 4029 V 64 w(enter)p 2608 4029 V 63 w(pointer)j Fs(allo)5
b(cates)55 b(space)i(in)f(the)g(Sc)-5 b(heme)57 b(heap)f(and)h(migh)-5
b(t)57 b(trigger)1478 4228 y(a)e(garbage)h(collection;)f(see)g(Section)
g(7.8.)1511 4531 y Fj(\017)83 b Fo(\(import-definition)j
Fr(name)12 b Fo(\))2912 b Fs(syn)-5 b(tax)1511 4731 y
Fj(\017)83 b Fo(\(import-definition)j Fr(name)e(c-name)12
b Fo(\))2303 b Fs(syn)-5 b(tax)1478 5034 y(These)64 b(macros)g
(simplify)h(imp)5 b(orting)64 b(de\014nitions)h(from)f(C)g(to)f(Sc)-5
b(heme.)100 b(They)63 b(expand)1478 5233 y(in)-5 b(to)1727
5434 y Fo(\(define)88 b Fr(name)100 b Fo(\(lookup-imported-binding)92
b Fr(c-name)12 b Fo(\)\))1478 5634 y Fs(where)59 b Fr(c-name)74
b Fs(is)60 b(as)g(supplied)h(for)f(the)f(second)i(form.)87
b(F)-14 b(or)60 b(the)f(\014rst)h(form)g Fr(c-name)74
b Fs(is)1478 5834 y(deriv)-5 b(ed)53 b(from)g Fr(name)65
b Fs(b)-5 b(y)53 b(replacing)g(`)p Fo(-)p Fs(')g(with)g(`)p
4502 5834 V 63 w(')g(and)g(con)-5 b(v)g(erting)53 b(letters)f(to)g(lo)
-5 b(w)g(ercase.)1478 6033 y(F)-14 b(or)56 b(example,)f
Fo(\(import-definition)90 b(my-foo\))57 b Fs(expands)f(in)-5
b(to)1727 6234 y Fo(\(define)88 b(my-foo)g(\(lookup-imported-binding)k
("my)p 5485 6234 V 63 w(foo"\)\))1478 6706 y Ff(7.2.3)225
b(Complete)75 b(shared)f(binding)f(in)-6 b(terface)1478
7015 y Fs(There)49 b(are)g(a)g(n)-5 b(um)g(b)5 b(er)51
b(of)e(other)g(Sc)-5 b(heme)50 b(functions)f(related)g(to)g(shared)h
(bindings;)j(these)1478 7214 y(are)i(in)h(the)f(structure)g
Fo(shared-bindings)p Fs(.)1511 7518 y Fj(\017)83 b Fo
(\(shared-binding?)103 b Fr(x)20 b Fo(\))83 b Fj(!)g
Fr(b)-8 b(o)g(ole)g(an)1511 7717 y Fj(\017)83 b Fo
(\(shared-binding-name)k Fr(shar)-8 b(e)g(d-binding)15
b Fo(\))83 b Fj(!)g Fr(string)1511 7916 y Fj(\017)g Fo
(\(shared-binding-is-import?)105 b Fr(shar)-8 b(e)g(d-binding)15
b Fo(\))83 b Fj(!)g Fr(b)-8 b(o)g(ole)g(an)1511 8115
y Fj(\017)83 b Fo(\(shared-binding-set!)k Fr(shar)-8
b(e)g(d-binding)83 b(value)12 b Fo(\))1511 8315 y Fj(\017)83
b Fo(\(define-imported-binding)k Fr(string)d(value)12
b Fo(\))1511 8514 y Fj(\017)83 b Fo(\(lookup-exported-binding)k
Fr(string)15 b Fo(\))1511 8713 y Fj(\017)83 b Fo
(\(undefine-imported-binding)88 b Fr(string)15 b Fo(\))1511
8912 y Fj(\017)83 b Fo(\(undefine-exported-binding)88
b Fr(string)15 b Fo(\))1478 9215 y(Shared-binding?)78
b Fs(is)57 b(the)f(predicate)f(for)h(shared-bindings.)79
b Fo(Shared-binding-name)1478 9415 y Fs(returns)40 b(the)f(name)h(of)f
(a)h(binding.)69 b Fo(Shared-binding-is-import?)k Fs(is)40
b(true)g(if)f(the)g(bind-)1478 9614 y(ing)53 b(w)-5 b(as)53
b(de\014ned)g(from)f(C.)h Fo(Shared-binding-set!)76 b
Fs(c)-5 b(hanges)53 b(the)f(v)-9 b(alue)52 b(of)h(a)f(binding.)1478
9813 y Fo(Define-imported-binding)86 b Fs(and)d Fo
(lookup-exported-binding)k Fs(are)82 b(Sc)-5 b(heme)83
b(v)-5 b(er-)1478 10012 y(sions)90 b(of)101 b Fo(s48)p
2425 10012 V 64 w(define)p 3011 10012 V 63 w(exported)p
3770 10012 V 65 w(binding)90 b Fs(and)f Fo(s48)p 5151
10012 V 63 w(lookup)p 5736 10012 V 64 w(imported)p 6496
10012 V 64 w(binding)p Fs(.)4259 10511 y(84)p eop end
%%Page: 85 93
TeXDict begin 85 92 bop 581 1046 a Fs(The)77 b(t)-5 b(w)g(o)76
b Fo(undefine-)i Fs(pro)5 b(cedures)77 b(remo)-5 b(v)g(e)77
b(bindings)h(from)f(the)f(t)-5 b(w)g(o)77 b(tables.)137
b(They)581 1245 y(do)56 b(nothing)g(if)f(the)g(name)h(is)g(not)f(found)
h(in)f(the)g(table.)830 1445 y(The)h(follo)-5 b(wing)56
b(C)f(macros)h(corresp)5 b(ond)56 b(to)f(the)g(Sc)-5
b(heme)56 b(functions)g(ab)5 b(o)-5 b(v)g(e.)614 1735
y Fj(\017)83 b Fo(int)582 b(S48)p 1894 1735 53 7 v 63
w(SHARED)p 2479 1735 V 64 w(BINDING)p 3152 1735 V 64
w(P\(x\))614 1934 y Fj(\017)83 b Fo(int)582 b(S48)p 1894
1934 V 63 w(SHARED)p 2479 1934 V 64 w(BINDING)p 3152
1934 V 64 w(IS)p 3390 1934 V 63 w(IMPORT)p 3975 1934
V 64 w(P\(s48)p 4474 1934 V 64 w(value)84 b(s)p 5144
1934 V 62 w(b\))614 2134 y Fj(\017)f Fo(s48)p 1051 2134
V 64 w(value)h(S48)p 1895 2134 V 63 w(SHARED)p 2480 2134
V 64 w(BINDING)p 3153 2134 V 64 w(NAME\(s48)p 3913 2134
V 64 w(value)g(s)p 4583 2134 V 63 w(b\))614 2333 y Fj(\017)f
Fo(void)499 b(S48)p 1898 2333 V 64 w(SHARED)p 2484 2333
V 63 w(BINDING)p 3156 2333 V 64 w(SET\(s48)p 3829 2333
V 64 w(value)84 b(s)p 4499 2333 V 63 w(b,)f(s48)p 5080
2333 V 64 w(value)h(v\))581 2880 y Fl(7.3)270 b(Calling)90
b(C)g(functions)g(from)h(Sc)-7 b(heme)581 3244 y Fs(There)62
b(are)g(three)g(di\013eren)-5 b(t)62 b(w)-5 b(a)g(ys)63
b(to)f(call)g(C)g(functions)h(from)f(Sc)-5 b(heme,)65
b(dep)5 b(ending)62 b(on)581 3443 y(ho)-5 b(w)56 b(the)f(C)g(function)h
(w)-5 b(as)56 b(obtained.)614 3734 y Fj(\017)83 b Fo
(\(call-imported-binding)k Fr(binding)d(ar)-8 b(g)3613
3759 y Fm(0)3771 3734 y Fr(.)25 b(.)g(.)g Fo(\))102 b
Fj(!)84 b Fr(value)581 4024 y Fs(Eac)-5 b(h)74 b(of)f(these)h(applies)g
(its)g(\014rst)g(argumen)-5 b(t,)79 b(a)74 b(C)f(function,)78
b(to)73 b(the)g(rest)h(of)f(the)g(ar-)581 4224 y(gumen)-5
b(ts.)84 b(F)-14 b(or)59 b Fo(call-imported-binding)j
Fs(the)c(function)g(argumen)-5 b(t)59 b(m)-5 b(ust)59
b(b)5 b(e)58 b(an)h(im-)581 4423 y(p)5 b(orted)55 b(binding.)830
4622 y(F)-14 b(or)65 b(all)g(of)f(these,)j(the)d(C)g(function)h(is)g
(passed)g(the)f Fr(ar)-8 b(g)4427 4647 y Fd(i)4547 4622
y Fs(v)f(alues)64 b(and)h(the)f(v)-9 b(alue)64 b(re-)581
4821 y(turned)41 b(is)h(that)e(returned)h(b)-5 b(y)41
b(C)f(pro)5 b(cedure.)69 b(No)41 b(automatic)f(represen)-5
b(tation)41 b(con)-5 b(v)g(ersion)581 5021 y(o)5 b(ccurs)62
b(for)f(either)h(argumen)-5 b(ts)63 b(or)e(return)h(v)-9
b(alues.)93 b(Up)62 b(to)f(t)-5 b(w)g(elv)g(e)62 b(argumen)-5
b(ts)63 b(ma)-5 b(y)62 b(b)5 b(e)581 5220 y(passed.)105
b(There)65 b(is)g(no)h(metho)5 b(d)65 b(supplied)i(for)d(returning)i(m)
-5 b(ultiple)66 b(v)-9 b(alues)65 b(to)g(Sc)-5 b(heme)581
5419 y(from)48 b(C)g(\(or)f(vice)g(v)-5 b(ersa\))48 b(\(mainly)g(b)5
b(ecause)48 b(C)g(do)5 b(es)47 b(not)h(ha)-5 b(v)g(e)48
b(m)-5 b(ultiple)49 b(return)f(v)-9 b(alues\).)830 5618
y(Keyb)5 b(oard)71 b(in)-5 b(terrupts)71 b(that)f(o)5
b(ccur)71 b(during)g(a)g(call)g(to)f(a)h(C)g(function)g(are)f(ignored)
581 5818 y(un)-5 b(til)58 b(the)e(function)g(returns)h(to)g(Sc)-5
b(heme)57 b(\(this)g(is)g(clearly)f(a)h(problem;)h(w)-5
b(e)57 b(are)f(w)-5 b(orking)581 6017 y(on)56 b(a)f(solution\).)614
6308 y Fj(\017)83 b Fo(\(import-lambda-definition)88
b Fr(name)96 b Fo(\()p Fr(formal)k Fo(...\)\))1214 b
Fs(syn)-5 b(tax)614 6507 y Fj(\017)83 b Fo(\(import-lambda-definition)
88 b Fr(name)96 b Fo(\()p Fr(formal)k Fo(...\))84 b Fr(c-name)12
b Fo(\))593 b Fs(syn)-5 b(tax)581 6797 y(These)62 b(macros)h(simplify)f
(imp)5 b(orting)62 b(functions)g(from)g(C.)g(They)f(de\014ne)h
Fr(name)75 b Fs(to)61 b(b)5 b(e)62 b(a)581 6997 y(function)52
b(with)f(the)g(giv)-5 b(en)51 b(formals)i(that)d(applies)j(those)e
(formals)i(to)e(the)g(corresp)5 b(onding)581 7196 y(C)55
b(binding.)76 b Fr(C-name)12 b Fs(,)56 b(if)f(supplied,)i(should)g(b)5
b(e)55 b(a)g(string.)75 b(These)55 b(expand)h(in)-5 b(to)581
7551 y Fo(\(define)89 b(temp)e(\(lookup-imported-binding)92
b Fr(c-name)12 b Fo(\)\))581 7750 y(\(define)89 b Fr(name)755
7949 y Fo(\(lambda)g(\()p Fr(formal)104 b Fo(...\))930
8149 y(\(call-imported-binding)91 b(temp)d Fr(formal)104
b Fo(...\)\)\))639 8504 y Fs(If)71 b Fr(c-name)h Fs(is)59
b(not)g(supplied,)h(it)e(is)h(deriv)-5 b(ed)59 b(from)f
Fr(name)72 b Fs(b)-5 b(y)58 b(con)-5 b(v)g(erting)59
b(all)f(letters)g(to)581 8703 y(lo)-5 b(w)g(ercase)56
b(and)g(replacing)g(`)p Fo(-)p Fs(')g(with)f(`)p 3014
8703 V 63 w('.)581 9250 y Fl(7.4)270 b(Dynamic)89 b(loading)581
9614 y Fs(External)38 b(co)5 b(de)39 b(can)g(b)5 b(e)38
b(loaded)i(in)-5 b(to)39 b(a)g(running)h(Sc)-5 b(heme)39
b(48|at)g(least)g(on)g(most)g(v)-9 b(arian)k(ts)581 9813
y(of)61 b(Unix)f(and)i(on)f(Windo)-5 b(ws.)92 b(The)60
b(required)h(Sc)-5 b(heme)62 b(functions)f(are)g(in)g(the)g(structure)
581 10012 y Fo(load-dynamic-externals)p Fs(.)3362 10511
y(85)p eop end
%%Page: 86 94
TeXDict begin 86 93 bop 1727 1046 a Fs(T)-14 b(o)80 b(b)5
b(e)80 b(suitable)h(for)f(dynamic)g(loading,)88 b(the)79
b(externals)h(co)5 b(de)80 b(m)-5 b(ust)81 b(reside)g(in)f(a)1478
1245 y(shared)56 b(ob)9 b(ject.)73 b(The)56 b(shared)g(ob)9
b(ject)55 b(m)-5 b(ust)56 b(de\014ne)g(t)-5 b(w)g(o)55
b(functions:)1511 1599 y Fj(\017)83 b Fo(void)h(s48)p
2380 1599 53 7 v 63 w(on)p 2617 1599 V 63 w(load\(void\))1511
1798 y Fj(\017)f Fo(void)h(s48)p 2380 1798 V 63 w(on)p
2617 1798 V 63 w(reload\(void\))1478 2152 y Fs(The)59
b Fo(s48)p 2094 2152 V 63 w(on)p 2331 2152 V 63 w(load)h
Fs(is)g(run)g(up)5 b(on)59 b(loading)h(the)f(shared)h(ob)9
b(jects.)85 b(It)59 b(t)-5 b(ypically)58 b(con)-5 b(tains)1478
2351 y(in)g(v)g(o)5 b(cations)63 b(of)76 b Fo(S48)p 2834
2351 V 63 w(EXPORT)p 3419 2351 V 64 w(FUNCTION)64 b Fs(to)e(mak)-5
b(e)63 b(the)g(functionalit)-5 b(y)62 b(de\014ned)i(b)-5
b(y)63 b(the)1478 2550 y(shared)73 b(ob)9 b(ject)71 b(kno)-5
b(wn)73 b(to)f(Sc)-5 b(heme)73 b(48.)124 b(Sc)-5 b(heme)73
b(48)f(calls)h Fo(s48)p 5760 2550 V 63 w(on)p 5997 2550
V 63 w(reload)g Fs(when)g(it)1478 2749 y(loads)48 b(the)f(shared)h(ob)9
b(ject)46 b(for)h(the)g(second)h(time,)g(or)f(some)h(new)f(v)-5
b(ersion)48 b(thereof.)71 b(\(More)1478 2949 y(on)55
b(that)g(later.\))73 b(Most)56 b(of)f(the)g(time,)g Fo(s48)p
4176 2949 V 64 w(on)p 4414 2949 V 63 w(reload)h Fs(will)g(simply)g
(call)f Fo(s48)p 6465 2949 V 64 w(on)p 6703 2949 V 63
w(load)p Fs(.)1727 3155 y(F)-14 b(or)67 b(Lin)-5 b(ux,)70
b(the)d(follo)-5 b(wing)67 b(commands)i(compile)e Fo(foo.c)g
Fs(in)-5 b(to)67 b(a)g(\014le)g Fo(foo.so)h Fs(that)1478
3354 y(can)55 b(b)5 b(e)55 b(loaded)h(dynamically)-14
b(.)1478 3715 y Fo(\045)87 b(gcc)h(-c)f(-o)h(foo.o)g(foo.c)1478
3914 y(\045)f(ld)h(-shared)g(-o)g(foo.so)g(foo.o)1478
4268 y Fs(The)54 b(follo)-5 b(wing)55 b(pro)5 b(cedures)55
b(pro)-5 b(vide)55 b(the)f(basic)h(functionalit)-5 b(y)54
b(for)g(loading)h(shared)h(ob-)1478 4467 y(jects)f(con)-5
b(taining)56 b(dynamic)f(externals:)1511 4821 y Fj(\017)83
b Fo(\(load-dynamic-externals)k Fr(string)d(plete?)101
b(rr)-8 b(ep)g(e)g(at?)99 b(rr)-8 b(esume?)20 b Fo(\))102
b Fj(!)83 b Fr(dynamic-externals)1511 5020 y Fj(\017)g
Fo(\(unload-dynamic-externals)k Fr(string)15 b Fo(\))84
b Fj(!)166 b Fr(dynamic-externals)1511 5219 y Fj(\017)83
b Fo(\(reload-dynamic-externals)k Fr(string)15 b Fo(\))1478
5573 y(Load-dynamic-externals)69 b Fs(loads)c(the)g(named)g(shared)h
(ob)9 b(jects.)103 b(The)65 b Fr(plete?)124 b Fs(argu-)1478
5772 y(men)-5 b(t)66 b(determines)h(whether)f(Sc)-5 b(heme)66
b(48)g(app)5 b(ends)68 b(the)d(OS-sp)5 b(eci\014c)67
b(su\016x)g(\(t)-5 b(ypically)1478 5971 y Fo(.so)71 b
Fs(for)f(Unix,)j(and)e Fo(.dll)g Fs(for)f(Windo)-5 b(ws\))71
b(to)f(the)g(name.)119 b(The)71 b Fr(rr)-8 b(ep)g(e)g(at?)138
b Fs(argumen)-5 b(t)1478 6170 y(determines)81 b(ho)-5
b(w)83 b Fo(load-dynamic-externals)h Fs(b)5 b(eha)-5
b(v)g(es)81 b(if)g(it)f(is)h(called)g(again)f(with)1478
6370 y(the)67 b(same)h(argumen)-5 b(t:)99 b(If)67 b(this)h(is)g(true,)j
(it)c(reloads)h(the)f(shared)i(ob)9 b(ject)66 b(\(and)i(calls)g(its)
1478 6569 y Fo(s48)p 1749 6569 V 63 w(on)p 1986 6569
V 63 w(reload)81 b Fs(function\),)k(otherwise,)g(it)80
b(will)f(not)h(do)f(an)-5 b(ything.)147 b(The)79 b Fr(rr)-8
b(esume?)1478 6768 y Fs(argumen)j(t)81 b(determines)g(if)f(an)h(image)g
(subsequen)-5 b(tly)82 b(dump)5 b(ed)81 b(will)g(try)f(to)g(load)h(the)
1478 6967 y(shared)68 b(ob)9 b(ject)67 b(again)i(automatically)-14
b(.)110 b(\(The)67 b(shared)i(ob)9 b(jects)68 b(will)g(b)5
b(e)67 b(loaded)h(b)5 b(efore)1478 7167 y(an)-5 b(y)49
b(record)g(resumers)h(run.\))72 b Fo(Load-dynamic-externals)53
b Fs(returns)c(a)g(handle)h(iden)-5 b(tify-)1478 7366
y(ing)56 b(the)e(shared)j(ob)9 b(ject)54 b(just)i(loaded.)1727
7572 y Fo(Unload-dynamic-externals)k Fs(unloads)e(the)e(shared)h(ob)9
b(ject)56 b(asso)5 b(ciated)56 b(with)h(the)1478 7772
y(handle)h(passed)i(as)e(its)g(argumen)-5 b(t.)83 b(Note)57
b(that)g(this)i(in)-5 b(v)c(alidates)58 b(all)g(external)g(bindings)
1478 7971 y(asso)5 b(ciated)56 b(with)g(the)f(shared)i(ob)9
b(ject;)56 b(referring)g(to)f(an)-5 b(y)56 b(of)g(them)g(will)g
(probably)h(crash)1478 8170 y(the)e(program.)1727 8376
y Fo(Reload-dynamic-externals)60 b Fs(will)c(reload)g(the)f(shared)i
(ob)9 b(ject)55 b(named)h(b)-5 b(y)56 b(its)g(ar-)1478
8576 y(gumen)-5 b(t)56 b(and)g(call)f(its)h Fo(s48)p
3203 8576 V 63 w(on)p 3440 8576 V 63 w(reload)g Fs(function.)1511
8896 y Fj(\017)83 b Fo(\(import-dynamic-externals)k Fr(string)15
b Fo(\))84 b Fj(!)f Fr(dynamic-externals)1478 9216 y
Fs(This)37 b(pro)5 b(cedure)37 b(represen)-5 b(ts)38
b(the)f(exp)5 b(ected)35 b(most)i(usage)h(for)e(loading)i
(dynamic-externals.)1478 9416 y(It)55 b(is)h(b)5 b(est)55
b(explained)g(b)-5 b(y)56 b(its)f(de\014nition:)1478
9776 y Fo(\(define)88 b(\(import-dynamic-externals)k(name\))1652
9976 y(\(load-dynamic-externals)f(name)d(#t)g(#f)f(#t\)\))4259
10511 y Fs(86)p eop end
%%Page: 87 95
TeXDict begin 87 94 bop 581 1046 a Fl(7.5)270 b(Compatibilit)-7
b(y)581 1410 y Fs(Sc)i(heme)38 b(48's)f(old)h Fo(external-call)h
Fs(function)e(is)g(still)g(a)-5 b(v)c(ailable)38 b(in)f(the)f
(structure)h Fo(externals)p Fs(,)581 1609 y(whic)-5 b(h)38
b(no)-5 b(w)37 b(also)h(includes)g Fo(external-name)h
Fs(and)e Fo(external-value)p Fs(.)71 b(The)36 b(old)i
Fo(scheme48.h)581 1808 y Fs(\014le)56 b(has)g(b)5 b(een)55
b(renamed)h Fo(old-scheme48.h)p Fs(.)830 2008 y(Also,)79
b(the)73 b(old)g(co)5 b(de)73 b(for)h(loading)g(external)f(co)5
b(de)73 b(dynamically)g(is)h(still)g(a)-5 b(v)c(ailable)581
2207 y(in)67 b(the)f Fo(dynamic-externals)k Fs(structure,)f(but)d(will)
h(probably)g(disapp)5 b(ear)68 b(in)f(a)f(future)581
2406 y(release.)581 2956 y Fl(7.6)270 b(Accessing)89
b(Sc)-7 b(heme)90 b(data)f(from)h(C)581 3320 y Fs(The)71
b(C)f(header)h(\014le)g Fo(scheme48.h)i Fs(pro)-5 b(vides)71
b(access)g(to)g(Sc)-5 b(heme)71 b(48)g(data)f(structures.)581
3519 y(The)g(t)-5 b(yp)5 b(e)69 b Fo(s48)p 1596 3519
53 7 v 63 w(value)i Fs(is)g(used)f(for)g(Sc)-5 b(heme)70
b(v)-9 b(alues.)118 b(When)70 b(the)f(t)-5 b(yp)5 b(e)69
b(of)h(a)g(v)-9 b(alue)69 b(is)581 3718 y(kno)-5 b(wn,)50
b(suc)-5 b(h)49 b(as)g(the)f(in)-5 b(teger)48 b(returned)f(b)-5
b(y)51 b Fo(vector-length)f Fs(or)e(the)g(b)5 b(o)g(olean)48
b(returned)581 3917 y(b)-5 b(y)60 b Fo(pair?)p Fs(,)f(the)e(corresp)5
b(onding)59 b(C)e(pro)5 b(cedure)58 b(returns)g(a)f(C)h(v)-9
b(alue)57 b(of)g(the)g(appropriate)581 4117 y(t)-5 b(yp)5
b(e,)55 b(and)h(not)f(a)g Fo(s48)p 2028 4117 V 64 w(value)p
Fs(.)74 b(Predicates)56 b(return)f Fo(1)g Fs(for)h(true)f(and)g
Fo(0)h Fs(for)f(false.)581 4582 y Ff(7.6.1)225 b(Constan)-6
b(ts)581 4888 y Fs(The)55 b(follo)-5 b(wing)57 b(macros)f(denote)f(Sc)
-5 b(heme)56 b(constan)-5 b(ts:)830 5221 y Fj(\017)83
b Fo(S48)p 1267 5221 V 64 w(FALSE)56 b Fs(is)g Fo(#f)p
Fs(.)830 5553 y Fj(\017)83 b Fo(S48)p 1267 5553 V 64
w(TRUE)56 b Fs(is)g Fo(#t)p Fs(.)830 5886 y Fj(\017)83
b Fo(S48)p 1267 5886 V 64 w(NULL)56 b Fs(is)g(the)f(empt)-5
b(y)55 b(list.)830 6218 y Fj(\017)83 b Fo(S48)p 1267
6218 V 64 w(UNSPECIFIC)66 b Fs(is)f(a)g(v)-9 b(alue)64
b(used)h(for)f(functions)i(whic)-5 b(h)65 b(ha)-5 b(v)g(e)65
b(no)g(meaningful)996 6417 y(return)e(v)-9 b(alue)62
b(\(in)g(Sc)-5 b(heme)63 b(48)g(this)g(v)-9 b(alue)62
b(returned)h(b)-5 b(y)62 b(the)g(n)-5 b(ullary)64 b(pro)5
b(cedure)996 6617 y Fo(unspecific)57 b Fs(in)f(the)f(structure)g
Fo(util)p Fs(\).)830 6949 y Fj(\017)83 b Fo(S48)p 1267
6949 V 64 w(EOF)64 b Fs(is)g(the)g(end-of-\014le)h(ob)9
b(ject)63 b(\(in)h(Sc)-5 b(heme)64 b(48)g(this)h(v)-9
b(alue)63 b(is)i(returned)e(b)-5 b(y)996 7148 y(the)55
b(n)-5 b(ullary)56 b(pro)5 b(cedure)56 b Fo(eof-object)h
Fs(in)e(the)g(structure)g Fo(i/o-internal)p Fs(\).)581
7613 y Ff(7.6.2)225 b(Con)-6 b(v)g(erting)74 b(v)-12
b(alues)581 7920 y Fs(The)54 b(follo)-5 b(wing)54 b(macros)h(and)f
(functions)g(con)-5 b(v)g(ert)54 b(v)-9 b(alues)54 b(b)5
b(et)-5 b(w)g(een)53 b(Sc)-5 b(heme)54 b(and)h(C)e(rep-)581
8119 y(resen)-5 b(tations.)89 b(The)61 b(`extract')d(ones)j(con)-5
b(v)g(ert)60 b(from)h(Sc)-5 b(heme)60 b(to)g(C)g(and)h(the)f(`en)-5
b(ter's)61 b(go)581 8319 y(the)55 b(other)g(w)-5 b(a)g(y)-14
b(.)614 8618 y Fj(\017)83 b Fo(int)582 b(S48)p 1894 8618
V 63 w(EXTRACT)p 2566 8618 V 64 w(BOOLEAN\(s48)p 3587
8618 V 65 w(value\))614 8817 y Fj(\017)83 b Fo(unsigned)i(char)f(s48)p
2264 8817 V 63 w(extract)p 2936 8817 V 64 w(char\(s48)p
3696 8817 V 64 w(value\))614 9016 y Fj(\017)f Fo(char)h(*)332
b(s48)p 1902 9016 V 64 w(extract)p 2575 9016 V 64 w(string\(s48)p
3509 9016 V 64 w(value\))614 9215 y Fj(\017)83 b Fo(char)h(*)332
b(s48)p 1902 9215 V 64 w(extract)p 2575 9215 V 64 w(byte)p
2987 9215 V 63 w(vector\(s48)p 3920 9215 V 65 w(value\))614
9415 y Fj(\017)83 b Fo(long)499 b(s48)p 1898 9415 V 64
w(extract)p 2571 9415 V 63 w(integer\(s48)p 3591 9415
V 65 w(value\))614 9614 y Fj(\017)83 b Fo(double)334
b(s48)p 1907 9614 V 63 w(extract)p 2579 9614 V 64 w(double\(s48)p
3513 9614 V 64 w(value\))614 9813 y Fj(\017)83 b Fo(s48)p
1051 9813 V 64 w(value)h(S48)p 1895 9813 V 63 w(ENTER)p
2393 9813 V 63 w(BOOLEAN\(int\))614 10012 y Fj(\017)f
Fo(s48)p 1051 10012 V 64 w(value)h(s48)p 1895 10012 V
63 w(enter)p 2393 10012 V 63 w(char\(unsigned)i(char\))3362
10511 y Fs(87)p eop end
%%Page: 88 96
TeXDict begin 88 95 bop 1511 1046 a Fj(\017)83 b Fo(s48)p
1948 1046 53 7 v 63 w(value)h(s48)p 2791 1046 V 63 w(enter)p
3289 1046 V 64 w(string\(char)h(*\))1908 b Fs(\(ma)-5
b(y)56 b(GC\))1511 1245 y Fj(\017)83 b Fo(s48)p 1948
1245 V 63 w(value)h(s48)p 2791 1245 V 63 w(enter)p 3289
1245 V 64 w(byte)p 3701 1245 V 64 w(vector\(char)g(*,)g(long\))978
b Fs(\(ma)-5 b(y)56 b(GC\))1511 1445 y Fj(\017)83 b Fo(s48)p
1948 1445 V 63 w(value)h(s48)p 2791 1445 V 63 w(enter)p
3289 1445 V 64 w(integer\(long\))1993 b Fs(\(ma)-5 b(y)56
b(GC\))1511 1644 y Fj(\017)83 b Fo(s48)p 1948 1644 V
63 w(value)h(s48)p 2791 1644 V 63 w(enter)p 3289 1644
V 64 w(double\(double\))1906 b Fs(\(ma)-5 b(y)56 b(GC\))1478
1952 y Fo(S48)p 1749 1952 V 63 w(EXTRACT)p 2421 1952
V 64 w(BOOLEAN)38 b Fs(is)g(false)f(if)f(its)i(argumen)-5
b(t)37 b(is)h Fo(#f)f Fs(and)g(true)g(otherwise.)68 b
Fo(S48)p 6764 1952 V 63 w(ENTER)p 7262 1952 V 64 w(BOOLEAN)1478
2151 y Fs(is)56 b Fo(#f)f Fs(if)h(its)f(argumen)-5 b(t)56
b(is)g(zero)f(and)h Fo(#t)g Fs(otherwise.)1727 2353 y
Fo(s48)p 1998 2353 V 63 w(extract)p 2670 2353 V 64 w(string)j
Fs(and)f Fo(s48)p 3901 2353 V 63 w(extract)p 4573 2353
V 64 w(byte)p 4985 2353 V 64 w(vector)h Fs(return)e(p)5
b(oin)-5 b(ters)58 b(to)g(the)1478 2552 y(actual)g(storage)h(used)g(b)
-5 b(y)59 b(the)f(string)h(or)g(b)-5 b(yte)58 b(v)-5
b(ector.)83 b(These)58 b(p)5 b(oin)-5 b(ters)59 b(are)g(v)-9
b(alid)58 b(only)1478 2751 y(un)-5 b(til)56 b(the)f(next;)g(see)g
(Section)g(7.8.)1727 2954 y(The)39 b(second)g(argumen)-5
b(t)40 b(to)e Fo(s48)p 3755 2954 V 64 w(enter)p 4254
2954 V 63 w(byte)p 4665 2954 V 64 w(vector)i Fs(is)f(the)g(length)g(of)
f(b)-5 b(yte)39 b(v)-5 b(ector.)1727 3156 y Fo(s48)p
1998 3156 V 63 w(enter)p 2496 3156 V 64 w(integer\(\))75
b Fs(needs)f(to)f(allo)5 b(cate)73 b(storage)g(when)h(its)g(argumen)-5
b(t)74 b(is)g(to)5 b(o)1478 3355 y(large)60 b(to)g(\014t)h(in)g(a)f(Sc)
-5 b(heme)61 b(48)g(\014xn)-5 b(um.)90 b(In)61 b(cases)g(where)f(the)g
(n)-5 b(um)g(b)5 b(er)62 b(is)f(kno)-5 b(wn)61 b(to)f(\014t)1478
3554 y(within)53 b(a)g(\014xn)-5 b(um)54 b(\(curren)-5
b(tly)52 b(30)h(bits)g(including)h(the)e(sign\),)i(the)e(follo)-5
b(wing)54 b(pro)5 b(cedures)1478 3754 y(can)60 b(b)5
b(e)61 b(used.)90 b(These)61 b(ha)-5 b(v)g(e)61 b(the)f(disadv)-9
b(an)k(tage)61 b(of)g(only)f(ha)-5 b(ving)62 b(a)e(limited)h(range,)h
(but)1478 3953 y(the)e(adv)-9 b(an)k(tage)61 b(of)g(nev)-5
b(er)61 b(causing)h(a)f(garbage)g(collection.)91 b Fo(S48)p
5659 3953 V 63 w(FIXNUM)p 6244 3953 V 64 w(P)61 b Fs(is)h(a)f(macro)
1478 4152 y(that)55 b(true)g(if)g(its)g(argumen)-5 b(t)56
b(is)g(a)g(\014xn)-5 b(um)56 b(and)g(false)g(otherwise.)1511
4460 y Fj(\017)83 b Fo(int)582 b(S48)p 2791 4460 V 63
w(TRUE)p 3202 4460 V 63 w(P\(s48)p 3700 4460 V 64 w(value\))1511
4659 y Fj(\017)83 b Fo(int)582 b(S48)p 2791 4659 V 63
w(FALSE)p 3289 4659 V 64 w(P\(s48)p 3788 4659 V 63 w(value\))1478
4967 y(S48)p 1749 4967 V 63 w(TRUE)p 2160 4967 V 64 w(P)69
b Fs(is)g(true)g(if)f(its)h(argumen)-5 b(t)70 b(is)f
Fo(S48)p 4533 4967 V 64 w(TRUE)g Fs(and)h Fo(S48)p 5612
4967 V 63 w(FALSE)p 6110 4967 V 63 w(P)f Fs(is)h(true)e(if)h(its)1478
5166 y(argumen)-5 b(t)56 b(is)g Fo(S48)p 2659 5166 V
63 w(FALSE)p Fs(.)1511 5474 y Fj(\017)83 b Fo(int)582
b(S48)p 2791 5474 V 63 w(FIXNUM)p 3376 5474 V 64 w(P\(s48)p
3875 5474 V 63 w(value\))1511 5673 y Fj(\017)83 b Fo(long)499
b(s48)p 2795 5673 V 63 w(extract)p 3467 5673 V 64 w(fixnum\(s48)p
4401 5673 V 65 w(value\))1511 5872 y Fj(\017)83 b Fo(s48)p
1948 5872 V 63 w(value)h(s48)p 2791 5872 V 63 w(enter)p
3289 5872 V 64 w(fixnum\(long\))1511 6071 y Fj(\017)f
Fo(long)499 b(S48)p 2795 6071 V 63 w(MAX)p 3119 6071
V 63 w(FIXNUM)p 3704 6071 V 64 w(VALUE)1511 6271 y Fj(\017)83
b Fo(long)499 b(S48)p 2795 6271 V 63 w(MIN)p 3119 6271
V 63 w(FIXNUM)p 3704 6271 V 64 w(VALUE)1478 6578 y Fs(An)44
b(error)h(is)h(signalled)g(if)57 b Fo(s48)p 3391 6578
V 63 w(extract)p 4063 6578 V 64 w(fixnum)p Fs('s)47 b(argumen)-5
b(t)45 b(is)h(not)e(a)h(\014xn)-5 b(um)46 b(or)f(if)g(the)1478
6778 y(argumen)-5 b(t)66 b(to)g Fo(s48)p 2716 6778 V
63 w(enter)p 3214 6778 V 64 w(fixnum)g Fs(is)h(less)f(than)g
Fo(S48)p 5019 6778 V 64 w(MIN)p 5344 6778 V 63 w(FIXNUM)p
5929 6778 V 64 w(VALUE)g Fs(or)g(greater)1478 6977 y(than)55
b Fo(S48)p 2136 6977 V 64 w(MAX)p 2461 6977 V 63 w(FIXNUM)p
3046 6977 V 64 w(VALUE)h Fs(\()p Fj(\000)p Fs(2)3868
6917 y Fm(29)4064 6977 y Fs(and)f(2)4469 6917 y Fm(29)4647
6977 y Fj(\000)37 b Fs(1)55 b(in)h(the)f(curren)-5 b(t)56
b(system\).)1478 7457 y Ff(7.6.3)225 b(C)74 b(v)-6 b(ersions)76
b(of)f(Sc)-6 b(heme)74 b(pro)6 b(cedures)1478 7769 y
Fs(The)46 b(follo)-5 b(wing)48 b(macros)f(and)g(pro)5
b(cedures)47 b(are)f(C)h(v)-5 b(ersions)48 b(of)e(Sc)-5
b(heme)47 b(pro)5 b(cedures.)71 b(The)1478 7968 y(names)56
b(w)-5 b(ere)55 b(deriv)-5 b(ed)56 b(b)-5 b(y)56 b(replacing)f(`)p
Fo(-)p Fs(')h(with)f(`)p 4561 7968 V 63 w(',)h(`)p Fo(?)p
Fs(')74 b(with)55 b(`)p 5449 7968 V 63 w Fo(P)p Fs(',)h(and)g(dropping)
g(`)p Fo(!)p Fs(.)1511 8276 y Fj(\017)83 b Fo(int)582
b(S48)p 2791 8276 V 63 w(EQ)p 3028 8276 V 63 w(P\(s48)p
3526 8276 V 64 w(value,)84 b(s48)p 4457 8276 V 63 w(VALUE\))1511
8475 y Fj(\017)f Fo(int)582 b(S48)p 2791 8475 V 63 w(CHAR)p
3202 8475 V 63 w(P\(s48)p 3700 8475 V 64 w(value\))1511
8780 y Fj(\017)83 b Fo(int)582 b(S48)p 2791 8780 V 63
w(PAIR)p 3202 8780 V 63 w(P\(s48)p 3700 8780 V 64 w(value\))1511
8979 y Fj(\017)83 b Fo(s48)p 1948 8979 V 63 w(value)h(S48)p
2791 8979 V 63 w(CAR\(s48)p 3463 8979 V 64 w(value\))1511
9179 y Fj(\017)f Fo(s48)p 1948 9179 V 63 w(value)h(S48)p
2791 9179 V 63 w(CDR\(s48)p 3463 9179 V 64 w(value\))1511
9378 y Fj(\017)f Fo(void)499 b(S48)p 2795 9378 V 63 w(SET)p
3119 9378 V 63 w(CAR\(s48)p 3791 9378 V 64 w(value,)84
b(s48)p 4722 9378 V 64 w(value\))1511 9577 y Fj(\017)f
Fo(void)499 b(S48)p 2795 9577 V 63 w(SET)p 3119 9577
V 63 w(CDR\(s48)p 3791 9577 V 64 w(value,)84 b(s48)p
4722 9577 V 64 w(value\))1511 9776 y Fj(\017)f Fo(s48)p
1948 9776 V 63 w(value)h(s48)p 2791 9776 V 63 w(cons\(s48)p
3550 9776 V 65 w(value,)g(s48)p 4482 9776 V 63 w(value\))1410
b Fs(\(ma)-5 b(y)56 b(GC\))1511 9976 y Fj(\017)83 b Fo(long)499
b(s48)p 2795 9976 V 63 w(length\(s48)p 3728 9976 V 65
w(value\))4259 10511 y Fs(88)p eop end
%%Page: 89 97
TeXDict begin 89 96 bop 614 1046 a Fj(\017)83 b Fo(int)582
b(S48)p 1894 1046 53 7 v 63 w(VECTOR)p 2479 1046 V 64
w(P\(s48)p 2978 1046 V 64 w(value\))614 1245 y Fj(\017)83
b Fo(long)499 b(S48)p 1898 1245 V 64 w(VECTOR)p 2484
1245 V 63 w(LENGTH\(s48)p 3417 1245 V 65 w(value\))614
1445 y Fj(\017)83 b Fo(s48)p 1051 1445 V 64 w(value)h(S48)p
1895 1445 V 63 w(VECTOR)p 2480 1445 V 64 w(REF\(s48)p
3153 1445 V 64 w(value,)g(long\))614 1644 y Fj(\017)f
Fo(void)499 b(S48)p 1898 1644 V 64 w(VECTOR)p 2484 1644
V 63 w(SET\(s48)p 3156 1644 V 64 w(value,)84 b(long,)g(s48)p
4606 1644 V 63 w(value\))614 1843 y Fj(\017)f Fo(s48)p
1051 1843 V 64 w(value)h(s48)p 1895 1843 V 63 w(make)p
2306 1843 V 63 w(vector\(long,)h(s48)p 3759 1843 V 64
w(value\))1236 b Fs(\(ma)-5 b(y)55 b(GC\))614 2139 y
Fj(\017)83 b Fo(int)582 b(S48)p 1894 2139 V 63 w(STRING)p
2479 2139 V 64 w(P\(s48)p 2978 2139 V 64 w(value\))614
2338 y Fj(\017)83 b Fo(long)499 b(S48)p 1898 2338 V 64
w(STRING)p 2484 2338 V 63 w(LENGTH\(s48)p 3417 2338 V
65 w(value\))614 2537 y Fj(\017)83 b Fo(char)499 b(S48)p
1898 2537 V 64 w(STRING)p 2484 2537 V 63 w(REF\(s48)p
3156 2537 V 64 w(value,)84 b(long\))614 2737 y Fj(\017)f
Fo(void)499 b(S48)p 1898 2737 V 64 w(STRING)p 2484 2737
V 63 w(SET\(s48)p 3156 2737 V 64 w(value,)84 b(long,)g(char\))614
2936 y Fj(\017)f Fo(s48)p 1051 2936 V 64 w(value)h(s48)p
1895 2936 V 63 w(make)p 2306 2936 V 63 w(string\(long,)h(char\))1648
b Fs(\(ma)-5 b(y)55 b(GC\))614 3232 y Fj(\017)83 b Fo(int)582
b(S48)p 1894 3232 V 63 w(SYMBOL)p 2479 3232 V 64 w(P\(s48)p
2978 3232 V 64 w(value\))614 3431 y Fj(\017)83 b Fo(s48)p
1051 3431 V 64 w(value)h(s48)p 1895 3431 V 63 w(SYMBOL)p
2480 3431 V 64 w(TO)p 2718 3431 V 63 w(STRING\(s48)p
3651 3431 V 64 w(value\))614 3727 y Fj(\017)f Fo(int)582
b(S48)p 1894 3727 V 63 w(BYTE)p 2305 3727 V 64 w(VECTOR)p
2891 3727 V 64 w(P\(s48)p 3390 3727 V 63 w(value\))614
3926 y Fj(\017)83 b Fo(long)499 b(S48)p 1898 3926 V 64
w(BYTE)p 2310 3926 V 63 w(VECTOR)p 2895 3926 V 64 w(LENGTH\(s48)p
3829 3926 V 64 w(value\))614 4125 y Fj(\017)83 b Fo(char)499
b(S48)p 1898 4125 V 64 w(BYTE)p 2310 4125 V 63 w(VECTOR)p
2895 4125 V 64 w(REF\(s48)p 3568 4125 V 64 w(value,)84
b(long\))614 4324 y Fj(\017)f Fo(void)499 b(S48)p 1898
4324 V 64 w(BYTE)p 2310 4324 V 63 w(VECTOR)p 2895 4324
V 64 w(SET\(s48)p 3568 4324 V 64 w(value,)84 b(long,)g(int\))614
4524 y Fj(\017)f Fo(s48)p 1051 4524 V 64 w(value)h(s48)p
1895 4524 V 63 w(make)p 2306 4524 V 63 w(byte)p 2717
4524 V 64 w(vector\(long,)h(int\))1323 b Fs(\(ma)-5 b(y)55
b(GC\))581 5072 y Fl(7.7)270 b(Calling)90 b(Sc)-7 b(heme)89
b(functions)i(from)f(C)581 5436 y Fs(External)60 b(co)5
b(de)60 b(that)g(has)i(b)5 b(een)60 b(called)h(from)g(Sc)-5
b(heme)61 b(can)g(call)g(bac)-5 b(k)60 b(to)h(Sc)-5 b(heme)61
b(pro-)581 5635 y(cedures)56 b(using)g(the)f(follo)-5
b(wing)56 b(function.)614 5931 y Fj(\017)83 b Fo(s48)p
1051 5931 V 64 w(value)h(s48)p 1895 5931 V 63 w(call)p
2306 5931 V 63 w(scheme\(s48)p 3239 5931 V 65 w(value)g(p,)f(long)h
(nargs,)g(...\))581 6227 y Fs(This)71 b(calls)g(the)e(Sc)-5
b(heme)71 b(pro)5 b(cedure)70 b Fo(p)g Fs(on)g Fo(nargs)h
Fs(argumen)-5 b(ts,)75 b(whic)-5 b(h)71 b(are)f(passed)h(as)581
6426 y(additional)f(argumen)-5 b(ts)71 b(to)e Fo(s48)p
2690 6426 V 63 w(call)p 3101 6426 V 63 w(scheme)p Fs(.)117
b(There)69 b(ma)-5 b(y)70 b(b)5 b(e)69 b(at)g(most)h(t)-5
b(w)g(elv)g(e)69 b(ar-)581 6625 y(gumen)-5 b(ts.)118
b(The)69 b(v)-9 b(alue)69 b(returned)h(b)-5 b(y)70 b(the)f(Sc)-5
b(heme)70 b(pro)5 b(cedure)69 b(is)h(returned)g(b)-5
b(y)70 b(the)f(C)581 6824 y(pro)5 b(cedure.)127 b(In)-5
b(v)g(oking)74 b(an)-5 b(y)73 b(Sc)-5 b(heme)74 b(pro)5
b(cedure)73 b(ma)-5 b(y)73 b(p)5 b(oten)-5 b(tially)73
b(cause)g(a)h(garbage)581 7024 y(collection.)830 7223
y(There)38 b(are)g(some)h(complications)g(that)e(o)5
b(ccur)38 b(when)g(mixing)h(calls)f(from)g(C)g(to)g(Sc)-5
b(heme)581 7422 y(with)58 b(con)-5 b(tin)g(uations)60
b(and)f(threads.)82 b(C)58 b(only)h(supp)5 b(orts)59
b(do)-5 b(wn)g(w)g(ard)60 b(con)-5 b(tin)g(uations)59
b(\(via)581 7621 y Fo(longjmp\(\))p Fs(\).)87 b(Sc)-5
b(heme)60 b(con)-5 b(tin)g(uations)61 b(that)e(capture)g(a)g(p)5
b(ortion)60 b(of)f(the)g(C)g(stac)-5 b(k)59 b(ha)-5 b(v)g(e)581
7821 y(to)82 b(follo)-5 b(w)82 b(the)f(same)i(restriction.)153
b(F)-14 b(or)83 b(example,)88 b(supp)5 b(ose)83 b(Sc)-5
b(heme)83 b(pro)5 b(cedure)81 b Fo(s0)581 8020 y Fs(captures)g(con)-5
b(tin)g(uation)83 b Fo(a)e Fs(and)g(then)g(calls)h(C)f(pro)5
b(cedure)81 b Fo(c0)p Fs(,)88 b(whic)-5 b(h)82 b(in)f(turn)g(calls)581
8219 y(Sc)-5 b(heme)54 b(pro)5 b(cedure)54 b Fo(s1)p
Fs(.)74 b(Pro)5 b(cedure)53 b Fo(s1)h Fs(can)f(safely)h(call)g(the)f
(con)-5 b(tin)g(uation)54 b Fo(a)p Fs(,)h(b)5 b(ecause)581
8418 y(that)64 b(is)h(a)f(do)-5 b(wn)g(w)g(ard)66 b(use.)102
b(When)64 b Fo(a)h Fs(is)g(called)f(Sc)-5 b(heme)65 b(48)f(will)h(remo)
-5 b(v)g(e)65 b(the)f(p)5 b(ortion)581 8618 y(of)74 b(the)f(C)h(stac)-5
b(k)73 b(used)i(b)-5 b(y)74 b(the)f(call)h(to)f Fo(c0)p
Fs(.)130 b(On)74 b(the)f(other)h(hand,)79 b(if)87 b Fo(s1)74
b Fs(captures)g(a)581 8817 y(con)-5 b(tin)g(uation,)71
b(that)66 b(con)-5 b(tin)g(uation)68 b(cannot)f(b)5 b(e)66
b(used)i(from)f Fo(s0)p Fs(,)j(b)5 b(ecause)67 b(b)-5
b(y)67 b(the)g(time)581 9016 y(con)-5 b(trol)46 b(returns)g(to)f
Fo(s0)g Fs(the)g(C)h(stac)-5 b(k)45 b(used)h(b)-5 b(y)48
b Fo(c0)e Fs(will)f(no)h(longer)g(b)5 b(e)45 b(v)-9 b(alid.)70
b(An)46 b(attempt)581 9215 y(to)63 b(in)-5 b(v)g(ok)g(e)65
b(an)e(up)-5 b(w)g(ard)66 b(con)-5 b(tin)g(uation)64
b(that)f(is)i(closed)f(o)-5 b(v)g(er)63 b(a)h(p)5 b(ortion)64
b(of)f(the)g(C)h(stac)-5 b(k)581 9415 y(will)56 b(raise)g(an)f
(exception.)830 9614 y(In)43 b(Sc)-5 b(heme)43 b(48)g(threads)g(are)f
(implemen)-5 b(ted)44 b(using)g(con)-5 b(tin)g(uations,)47
b(so)c(the)f(do)-5 b(wn)g(w)g(ard)581 9813 y(restriction)56
b(applies)h(to)f(them)g(as)h(w)-5 b(ell.)77 b(An)56 b(attempt)f(to)h
(return)g(from)g(Sc)-5 b(heme)57 b(to)f(C)g(at)581 10012
y(a)67 b(time)g(when)h(the)f(appropriate)g(C)g(frame)g(is)h(not)f(on)h
(top)f(of)g(the)g(C)g(stac)-5 b(k)67 b(will)g(cause)3362
10511 y(89)p eop end
%%Page: 90 98
TeXDict begin 90 97 bop 1478 1046 a Fs(the)60 b(curren)-5
b(t)61 b(thread)f(to)h(blo)5 b(c)-5 b(k)60 b(un)-5 b(til)61
b(the)g(frame)f(is)i(a)-5 b(v)c(ailable.)90 b(F)-14 b(or)61
b(example,)h(supp)5 b(ose)1478 1245 y(thread)42 b Fo(t0)i
Fs(calls)f(a)g(C)f(pro)5 b(cedure)43 b(whic)-5 b(h)44
b(calls)f(bac)-5 b(k)43 b(to)f(Sc)-5 b(heme,)46 b(at)d(whic)-5
b(h)43 b(p)5 b(oin)-5 b(t)43 b(con)-5 b(trol)1478 1445
y(switc)g(hes)44 b(to)e(thread)h Fo(t1)p Fs(,)j(whic)-5
b(h)44 b(also)f(calls)h(C)f(and)g(then)g(bac)-5 b(k)43
b(to)g(Sc)-5 b(heme.)70 b(A)-5 b(t)43 b(this)g(p)5 b(oin)-5
b(t)1478 1644 y(b)5 b(oth)55 b Fo(t0)h Fs(and)g Fo(t1)g
Fs(ha)-5 b(v)g(e)56 b(activ)-5 b(e)55 b(calls)h(to)f(C)h(on)g(the)f(C)g
(stac)-5 b(k,)56 b(with)g Fo(t1)p Fs('s)g(C)g(frame)f(ab)5
b(o)-5 b(v)g(e)1478 1843 y Fo(t0)p Fs('s.)123 b(If)71
b(thread)g Fo(t0)h Fs(attempts)f(to)g(return)h(from)f(Sc)-5
b(heme)72 b(to)g(C)f(it)g(will)h(blo)5 b(c)-5 b(k,)75
b(as)d(its)1478 2042 y(frame)59 b(is)g(not)g(accessible.)84
b(Once)59 b Fo(t1)g Fs(has)h(returned)f(to)f(C)h(and)g(from)g(there)f
(to)h(Sc)-5 b(heme,)1478 2242 y Fo(t0)66 b Fs(will)h(b)5
b(e)66 b(able)g(to)g(resume.)107 b(The)66 b(return)g(to)g(Sc)-5
b(heme)66 b(is)h(required)f(b)5 b(ecause)66 b(con)-5
b(text)1478 2441 y(switc)g(hes)62 b(can)g(only)f(o)5
b(ccur)61 b(while)h(Sc)-5 b(heme)62 b(co)5 b(de)61 b(is)h(running.)93
b Fo(T0)62 b Fs(will)g(also)g(b)5 b(e)61 b(able)h(to)1478
2640 y(resume)56 b(if)68 b Fo(t1)56 b Fs(uses)g(a)f(con)-5
b(tin)g(uation)57 b(to)e(thro)-5 b(w)55 b(past)h(its)g(call)f(to)g(C.)
1478 3191 y Fl(7.8)269 b(In)-7 b(teracting)89 b(with)h(the)f(Sc)-7
b(heme)89 b(heap)1478 3556 y Fs(Sc)-5 b(heme)71 b(48)g(uses)g(a)g(cop)
-5 b(ying,)75 b(precise)c(garbage)g(collector.)119 b(An)-5
b(y)70 b(pro)5 b(cedure)71 b(that)f(al-)1478 3755 y(lo)5
b(cates)74 b(ob)9 b(jects)75 b(within)g(the)f(Sc)-5 b(heme)75
b(48)g(heap)g(ma)-5 b(y)75 b(trigger)g(a)g(garbage)g(collection.)1478
3954 y(V)-14 b(ariables)50 b(b)5 b(ound)51 b(to)e(v)-9
b(alues)50 b(in)g(the)f(Sc)-5 b(heme)51 b(48)f(heap)g(need)g(to)f(b)5
b(e)49 b(registered)h(with)g(the)1478 4153 y(garbage)45
b(collector)g(so)h(that)f(the)g(v)-9 b(alue)45 b(will)h(b)5
b(e)45 b(retained)g(and)h(so)g(that)f(the)g(v)-9 b(ariables)46
b(will)1478 4353 y(b)5 b(e)48 b(up)5 b(dated)48 b(if)g(the)f(garbage)i
(collector)e(mo)-5 b(v)g(es)49 b(the)f(ob)9 b(ject.)71
b(The)48 b(garbage)g(collector)g(has)1478 4552 y(no)j(facilit)-5
b(y)51 b(for)f(up)5 b(dating)52 b(p)5 b(oin)-5 b(ters)51
b(to)g(the)g(in)-5 b(teriors)52 b(of)e(ob)9 b(jects,)52
b(so)g(suc)-5 b(h)52 b(p)5 b(oin)-5 b(ters,)53 b(for)1478
4751 y(example)e(the)g(ones)g(returned)g(b)-5 b(y)54
b Fo(EXTRACT)p 4289 4751 53 7 v 64 w(STRING)p Fs(,)e(will)g(lik)-5
b(ely)51 b(b)5 b(ecome)50 b(in)-5 b(v)c(alid)52 b(when)1478
4950 y(a)j(garbage)h(collection)f(o)5 b(ccurs.)1478 5417
y Ff(7.8.1)225 b(Registering)76 b(ob)12 b(jects)75 b(with)g(the)g(GC)
1478 5724 y Fs(A)56 b(set)g(of)g(macros)i(are)e(used)h(to)f(manage)h
(the)g(registration)f(of)g(lo)5 b(cal)57 b(v)-9 b(ariables)56
b(with)h(the)1478 5924 y(garbage)e(collector.)1511 6224
y Fj(\017)83 b Fo(S48)p 1948 6224 V 63 w(DECLARE)p 2620
6224 V 64 w(GC)p 2858 6224 V 63 w(PROTECT\()p Fg(n)p
Fo(\))1511 6423 y Fj(\017)g Fo(void)h(S48)p 2380 6423
V 63 w(GC)p 2617 6423 V 63 w(PROTECT)p 3289 6423 V 64
w Fg(n)p Fo(\(s48)p 3801 6423 V 63 w(value)4289 6448
y Fm(1)4365 6423 y Fo(,)f Fg(:)28 b(:)g(:)o Fo(,)84 b(s48)p
5170 6423 V 63 w(value)5658 6448 y Fd(n)5749 6423 y Fo(\))1511
6622 y Fj(\017)f Fo(void)h(S48)p 2380 6622 V 63 w(GC)p
2617 6622 V 63 w(UNPROTECT\(\))1727 6922 y(S48)p 1998
6922 V 63 w(DECLARE)p 2670 6922 V 64 w(GC)p 2908 6922
V 63 w(PROTECT\()p Fg(n)p Fo(\))p Fs(,)64 b(where)d(1)55
b Fj(\024)h Fg(n)f Fj(\024)h Fs(9,)62 b(allo)5 b(cates)61
b(storage)g(for)f(regis-)1478 7121 y(tering)48 b Fg(n)f
Fs(v)-9 b(ariables.)72 b(A)-5 b(t)47 b(most)i(one)f(use)g(of)61
b Fo(S48)p 4523 7121 V 63 w(DECLARE)p 5195 7121 V 64
w(GC)p 5433 7121 V 63 w(PROTECT)49 b Fs(ma)-5 b(y)49
b(o)5 b(ccur)47 b(in)h(a)1478 7321 y(blo)5 b(c)-5 b(k.)71
b Fo(S48)p 2249 7321 V 64 w(GC)p 2487 7321 V 63 w(PROTECT)p
3159 7321 V 64 w Fg(n)p Fo(\()p Fg(v)3480 7346 y Fm(1)3555
7321 y Fo(,)87 b Fg(:)28 b(:)g(:)p Fo(,)87 b Fg(v)4177
7346 y Fd(n)4268 7321 y Fo(\))49 b Fs(registers)g(the)f
Fg(n)h Fs(v)-9 b(ariables)49 b(\(l-v)-9 b(alues\))48
b(with)1478 7520 y(the)40 b(garbage)i(collector.)68 b(It)41
b(m)-5 b(ust)42 b(b)5 b(e)41 b(within)g(scop)5 b(e)41
b(of)g(a)g Fo(S48)p 5359 7520 V 63 w(DECLARE)p 6031 7520
V 64 w(GC)p 6269 7520 V 63 w(PROTECT\()p Fg(n)p Fo(\))1478
7719 y Fs(and)56 b(b)5 b(e)56 b(b)5 b(efore)55 b(an)-5
b(y)56 b(co)5 b(de)55 b(whic)-5 b(h)57 b(can)f(cause)g(a)g(GC.)g
Fo(S48)p 5211 7719 V 63 w(GC)p 5448 7719 V 63 w(UNPROTECT)i
Fs(remo)-5 b(v)g(es)57 b(the)1478 7918 y(blo)5 b(c)-5
b(k's)64 b(protected)e(v)-9 b(ariables)64 b(from)f(the)g(garbage)h
(collector's)f(list.)98 b(It)63 b(m)-5 b(ust)64 b(b)5
b(e)63 b(called)1478 8118 y(at)j(the)g(end)i(of)e(the)g(blo)5
b(c)-5 b(k)67 b(after)f(an)-5 b(y)67 b(co)5 b(de)66 b(whic)-5
b(h)68 b(ma)-5 b(y)67 b(cause)g(a)g(garbage)g(collection.)1478
8317 y(Omitting)56 b(an)-5 b(y)56 b(of)f(the)g(three)g(ma)-5
b(y)56 b(cause)g(serious)h(and)f(hard-to-debug)h(problems.)76
b(No-)1478 8516 y(tably)-14 b(,)72 b(the)d(garbage)h(collector)e(ma)-5
b(y)70 b(relo)5 b(cate)68 b(an)h(ob)9 b(ject)69 b(and)h(in)-5
b(v)c(alidate)69 b Fo(s48)p 6717 8516 V 63 w(value)1478
8715 y Fs(v)-9 b(ariables)55 b(whic)-5 b(h)56 b(are)g(not)f(protected.)
1727 8915 y(A)i Fo(gc-protection-mismatch)62 b Fs(exception)57
b(is)h(raised)h(if,)f(when)g(a)g(C)g(pro)5 b(cedure)57
b(re-)1478 9114 y(turns)i(to)g(Sc)-5 b(heme,)61 b(the)d(calls)i(to)e
Fo(S48)p 3909 9114 V 64 w(GC)p 4147 9114 V 63 w(PROTECT\(\))i
Fs(ha)-5 b(v)g(e)60 b(not)f(b)5 b(een)58 b(matc)-5 b(hed)60
b(b)-5 b(y)59 b(an)1478 9314 y(equal)c(n)-5 b(um)g(b)5
b(er)57 b(of)e(calls)h(to)f Fo(S48)p 3554 9314 V 63 w(GC)p
3791 9314 V 63 w(UNPROTECT\(\))p Fs(.)1727 9513 y(Global)h(v)-9
b(ariables)56 b(ma)-5 b(y)55 b(also)h(b)5 b(e)55 b(registered)h(with)f
(the)g(garbage)g(collector.)1511 9813 y Fj(\017)83 b
Fo(void)h(*)f(S48)p 2550 9813 V 63 w(GC)p 2787 9813 V
63 w(PROTECT)p 3459 9813 V 64 w(GLOBAL\()p Fr(value)12
b Fo(\))1511 10012 y Fj(\017)83 b Fo(void)h(S48)p 2380
10012 V 63 w(GC)p 2617 10012 V 63 w(UNPROTECT)p 3463
10012 V 64 w(GLOBAL\(void)h(*)f(handle\))4259 10511 y
Fs(90)p eop end
%%Page: 91 99
TeXDict begin 91 98 bop 581 1046 a Fo(S48)p 852 1046
53 7 v 63 w(GC)p 1089 1046 V 64 w(PROTECT)p 1762 1046
V 64 w(GLOBAL)54 b Fs(p)5 b(ermanen)-5 b(tly)54 b(registers)h(the)e(v)
-9 b(ariable)54 b Fr(value)67 b Fs(\(an)54 b(l-v)-9 b(alue)54
b(of)581 1245 y(t)-5 b(yp)5 b(e)53 b Fo(s48)p 1224 1245
V 63 w(value)p Fs(\))h(with)f(the)g(garbage)h(collector.)72
b(It)53 b(returns)h(a)f(handle)i(p)5 b(oin)-5 b(ter)53
b(for)g(use)581 1445 y(as)74 b(an)g(argumen)-5 b(t)74
b(to)f Fo(S48)p 2305 1445 V 63 w(GC)p 2542 1445 V 63
w(UNPROTECT)p 3388 1445 V 64 w(GLOBAL)p Fs(,)i(whic)-5
b(h)74 b(unregisters)g(the)f(v)-9 b(ariable)581 1644
y(again.)581 2190 y Ff(7.8.2)225 b(Keeping)75 b(C)g(data)f(structures)g
(in)h(the)f(Sc)-6 b(heme)74 b(heap)581 2525 y Fs(C)64
b(data)h(structures)f(can)g(b)5 b(e)64 b(k)-5 b(ept)64
b(in)h(the)f(Sc)-5 b(heme)65 b(heap)f(b)-5 b(y)65 b(em)-5
b(b)5 b(edding)65 b(them)g(inside)581 2724 y(b)-5 b(yte)53
b(v)-5 b(ectors.)73 b(The)54 b(follo)-5 b(wing)54 b(macros)h(can)e(b)5
b(e)54 b(used)g(to)f(create)g(and)h(access)g(em)-5 b(b)5
b(edded)581 2924 y(C)55 b(ob)9 b(jects.)614 3268 y Fj(\017)83
b Fo(s48)p 1051 3268 V 64 w(value)h(S48)p 1895 3268 V
63 w(MAKE)p 2306 3268 V 63 w(VALUE\(type\))2255 b Fs(\(ma)-5
b(y)55 b(GC\))614 3468 y Fj(\017)83 b Fo(type)499 b(S48)p
1898 3468 V 64 w(EXTRACT)p 2571 3468 V 63 w(VALUE\(s48)p
3417 3468 V 65 w(value,)84 b(type\))614 3667 y Fj(\017)f
Fo(type)h(*)332 b(S48)p 1902 3667 V 64 w(EXTRACT)p 2575
3667 V 64 w(VALUE)p 3074 3667 V 63 w(POINTER\(s48)p 4094
3667 V 65 w(value,)84 b(type\))614 3866 y Fj(\017)f Fo(void)499
b(S48)p 1898 3866 V 64 w(SET)p 2223 3866 V 63 w(VALUE\(s48)p
3069 3866 V 64 w(value,)84 b(type,)g(value\))625 4211
y(S48)p 896 4211 V 63 w(MAKE)p 1307 4211 V 64 w(VALUE)44
b Fs(mak)-5 b(es)45 b(a)f(b)-5 b(yte)43 b(v)-5 b(ector)43
b(large)h(enough)g(to)g(hold)g(an)g(ob)9 b(ject)43 b(whose)h(t)-5
b(yp)5 b(e)581 4410 y(is)60 b Fr(typ)-8 b(e)12 b Fs(.)84
b Fo(S48)p 1454 4410 V 63 w(EXTRACT)p 2126 4410 V 64
w(VALUE)60 b Fs(returns)f(the)g(con)-5 b(ten)g(ts)59
b(of)g(a)g(b)-5 b(yte)58 b(v)-5 b(ector)58 b(cast)h(to)g
Fr(typ)-8 b(e)12 b Fs(,)581 4610 y(and)59 b Fo(S48)p
1178 4610 V 63 w(EXTRACT)p 1850 4610 V 64 w(VALUE)p 2349
4610 V 64 w(POINTER)g Fs(returns)f(a)g(p)5 b(oin)-5 b(ter)58
b(to)g(the)f(con)-5 b(ten)g(ts)59 b(of)e(the)h(b)-5 b(yte)581
4809 y(v)g(ector.)89 b(The)60 b(v)-9 b(alue)61 b(returned)f(b)-5
b(y)63 b Fo(S48)p 3129 4809 V 63 w(EXTRACT)p 3801 4809
V 64 w(VALUE)p 4300 4809 V 64 w(POINTER)f Fs(is)f(v)-9
b(alid)60 b(only)h(un)-5 b(til)581 5008 y(the)55 b(next)g(garbage)g
(collection.)830 5223 y Fo(S48)p 1101 5223 V 64 w(SET)p
1426 5223 V 63 w(VALUE)h Fs(stores)g Fo(value)g Fs(in)-5
b(to)56 b(the)f(b)-5 b(yte)55 b(v)-5 b(ector.)581 5769
y Ff(7.8.3)225 b(C)75 b(co)6 b(de)74 b(and)g(heap)g(images)581
6104 y Fs(Sc)-5 b(heme)65 b(48)f(uses)h(dump)5 b(ed)64
b(heap)h(images)f(to)g(restore)g(a)g(previous)g(system)h(state.)99
b(The)581 6303 y(Sc)-5 b(heme)59 b(48)f(heap)h(is)g(written)e(in)-5
b(to)59 b(a)f(\014le)h(in)f(a)h(mac)-5 b(hine-indep)5
b(enden)-5 b(t)60 b(and)f(op)5 b(erating-)581 6502 y(system-indep)g
(enden)-5 b(t)69 b(format.)111 b(The)68 b(pro)5 b(cedures)68
b(describ)5 b(ed)68 b(ab)5 b(o)-5 b(v)g(e)68 b(ma)-5
b(y)68 b(b)5 b(e)68 b(used)g(to)581 6702 y(create)55
b(ob)9 b(jects)55 b(in)h(the)f(Sc)-5 b(heme)56 b(heap)g(that)f(con)-5
b(tain)56 b(information)g(sp)5 b(eci\014c)55 b(to)g(the)g(cur-)581
6901 y(ren)-5 b(t)81 b(mac)-5 b(hine,)88 b(op)5 b(erating)80
b(system,)88 b(or)81 b(pro)5 b(cess.)150 b(A)80 b(heap)h(image)g(con)-5
b(taining)81 b(suc)-5 b(h)581 7100 y(ob)9 b(jects)55
b(ma)-5 b(y)56 b(not)f(w)-5 b(ork)56 b(correctly)e(when)h(resumed.)830
7315 y(T)-14 b(o)53 b(address)g(this)g(problem,)h(a)f(record)f(t)-5
b(yp)5 b(e)52 b(ma)-5 b(y)52 b(b)5 b(e)52 b(giv)-5 b(en)53
b(a)f(`resumer')i(pro)5 b(cedure.)581 7514 y(On)59 b(startup,)h(the)e
(resumer)h(pro)5 b(cedure)58 b(for)g(a)h(t)-5 b(yp)5
b(e)58 b(is)h(applied)g(to)f(eac)-5 b(h)59 b(record)f(of)g(that)581
7713 y(t)-5 b(yp)5 b(e)61 b(in)h(the)g(image)g(b)5 b(eing)62
b(restarted.)93 b(This)62 b(pro)5 b(cedure)62 b(can)g(up)5
b(date)61 b(the)h(record)f(in)i(a)581 7913 y(manner)41
b(appropriate)f(to)f(the)g(mac)-5 b(hine,)44 b(op)5 b(erating)40
b(system,)j(or)d(pro)5 b(cess)40 b(used)h(to)e(resume)581
8112 y(the)55 b(image.)614 8457 y Fj(\017)83 b Fo
(\(define-record-resumer)k Fr(r)-8 b(e)g(c)g(or)g(d-typ)g(e)82
b(pr)-8 b(o)g(c)g(e)g(dur)g(e)12 b Fo(\))581 8802 y
(Define-record-resumer)53 b Fs(de\014nes)c Fr(pr)-8 b(o)g(c)g(e)g(dur)g
(e)12 b Fs(,)50 b(whic)-5 b(h)49 b(should)i(accept)d(one)h(argumen)-5
b(t,)581 9001 y(to)61 b(b)5 b(e)62 b(the)f(resumer)i(for)e
Fr(r)-8 b(e)g(c)g(or)g(d-typ)g(e)11 b Fs(.)93 b(The)62
b(order)g(in)g(whic)-5 b(h)62 b(resumer)h(pro)5 b(cedures)62
b(are)581 9200 y(called)56 b(is)g(not)f(sp)5 b(eci\014ed.)830
9415 y(The)66 b Fr(pr)-8 b(o)g(c)g(e)g(dur)g(e)76 b Fs(argumen)-5
b(t)66 b(to)f Fo(define-record-resumer)k Fs(ma)-5 b(y)66
b(b)5 b(e)65 b Fo(#f)p Fs(,)j(in)e(whic)-5 b(h)581 9614
y(case)46 b(records)g(of)f(the)h(giv)-5 b(en)45 b(t)-5
b(yp)5 b(e)45 b(are)h(not)f(written)g(out)h(in)g(heap)g(images.)71
b(When)46 b(writing)581 9813 y(a)75 b(heap)g(image)g(an)-5
b(y)75 b(reference)f(to)g(suc)-5 b(h)76 b(a)f(record)g(is)g(replaced)g
(b)-5 b(y)75 b(the)f(v)-9 b(alue)75 b(of)f(the)581 10012
y(record's)56 b(\014rst)g(\014eld,)g(and)f(an)h(exception)f(is)h
(raised)g(after)e(the)h(image)h(is)g(written.)3362 10511
y(91)p eop end
%%Page: 92 100
TeXDict begin 92 99 bop 1478 1046 a Fl(7.9)269 b(Using)91
b(Sc)-7 b(heme)89 b(records)h(in)f(C)h(co)7 b(de)1478
1410 y Fs(External)55 b(mo)5 b(dules)56 b(can)f(create)g(records)g(and)
h(access)g(their)f(slots)h(p)5 b(ositionally)-14 b(.)1511
1704 y Fj(\017)83 b Fo(s48)p 1948 1704 53 7 v 63 w(value)h(s48)p
2791 1704 V 63 w(make)p 3202 1704 V 64 w(record\(s48)p
4136 1704 V 64 w(value\))1755 b Fs(\(ma)-5 b(y)56 b(GC\))1511
1903 y Fj(\017)83 b Fo(int)582 b(S48)p 2791 1903 V 63
w(RECORD)p 3376 1903 V 64 w(P\(s48)p 3875 1903 V 63 w(value\))1511
2103 y Fj(\017)83 b Fo(s48)p 1948 2103 V 63 w(value)h(S48)p
2791 2103 V 63 w(RECORD)p 3376 2103 V 64 w(TYPE\(s48)p
4136 2103 V 64 w(value\))1511 2302 y Fj(\017)f Fo(s48)p
1948 2302 V 63 w(value)h(S48)p 2791 2302 V 63 w(RECORD)p
3376 2302 V 64 w(REF\(s48)p 4049 2302 V 64 w(value,)g(long\))1511
2501 y Fj(\017)f Fo(void)499 b(S48)p 2795 2501 V 63 w(RECORD)p
3380 2501 V 64 w(SET\(s48)p 4053 2501 V 64 w(value,)84
b(long,)g(s48)p 5503 2501 V 63 w(value\))1478 2796 y
Fs(The)62 b(argumen)-5 b(t)63 b(to)g Fo(s48)p 3058 2796
V 63 w(make)p 3469 2796 V 63 w(record)h Fs(should)g(b)5
b(e)62 b(a)g(shared)i(binding)g(whose)f(v)-9 b(alue)62
b(is)1478 2995 y(a)57 b(record)h(t)-5 b(yp)5 b(e.)79
b(In)58 b(C)f(the)g(\014elds)i(of)e(Sc)-5 b(heme)58 b(records)g(are)f
(only)h(accessible)g(via)f(o\013sets,)1478 3194 y(with)d(the)f(\014rst)
h(\014eld)h(ha)-5 b(ving)54 b(o\013set)g(zero,)g(the)g(second)g
(o\013set)g(one,)g(and)h(so)f(forth.)73 b(If)54 b(the)1478
3393 y(order)i(of)g(the)f(\014elds)i(is)g(c)-5 b(hanged)57
b(in)f(the)g(Sc)-5 b(heme)56 b(de\014nition)h(of)f(the)g(record)f(t)-5
b(yp)5 b(e)56 b(the)f(C)1478 3593 y(co)5 b(de)55 b(m)-5
b(ust)56 b(b)5 b(e)55 b(up)5 b(dated)55 b(as)h(w)-5 b(ell.)1727
3792 y(F)-14 b(or)56 b(example,)f(giv)-5 b(en)56 b(the)f(follo)-5
b(wing)56 b(record-t)-5 b(yp)5 b(e)55 b(de\014nition)1478
4119 y Fo(\(define-record-type)90 b(thing)e(:thing)1652
4319 y(\(make-thing)h(a)f(b\))1652 4518 y(thing?)1652
4717 y(\(a)g(thing-a\))1652 4916 y(\(b)g(thing-b\)\))1478
5244 y Fs(the)55 b(iden)-5 b(ti\014er)56 b Fo(:thing)g
Fs(is)g(b)5 b(ound)56 b(to)f(the)g(record)g(t)-5 b(yp)5
b(e)55 b(and)h(can)f(b)5 b(e)55 b(exp)5 b(orted)54 b(to)h(C:)1478
5572 y Fo(\(define-exported-binding)91 b("thing-record-type")g
(:thing\))1478 5899 y(Thing)56 b Fs(records)g(can)f(then)g(b)5
b(e)55 b(made)h(in)g(C:)1478 6227 y Fo(static)88 b(s48_value)1652
6426 y(thing_record_type_binding)k(=)87 b(S48_FALSE;)1478
6824 y(void)h(initialize_things\(void\))1478 7024 y Fj(f)1652
7223 y Fo(S48_GC_PROTECT_GLOBAL\(thing_record_type_binding\);)1652
7422 y(thing_record_type_binding)k(=)1914 7621 y
(s48_get_imported_binding\("thing-record-type"\);)1478
7821 y Fj(g)1478 8219 y Fo(s48_value)d(make_thing\(s48_value)h(a,)e
(s48_value)g(b\))1478 8418 y Fj(f)1652 8618 y Fo(s48_value)h(thing;)
1652 8817 y(s48_DECLARE_GC_PROTECT\(2\);)1652 9215 y
(S48_GC_PROTECT_2\(a,)i(b\);)1652 9614 y(thing)d(=)g
(s48_make_record\(thing_record_type_binding\);)1652 9813
y(S48_RECORD_SET\(thing,)j(0,)c(a\);)1652 10012 y
(S48_RECORD_SET\(thing,)k(1,)c(b\);)4259 10511 y Fs(92)p
eop end
%%Page: 93 101
TeXDict begin 93 100 bop 755 1245 a Fo(S48_GC_UNPROTECT\(\);)755
1644 y(return)89 b(thing;)581 1843 y Fj(g)581 2117 y
Fs(Note)61 b(that)g(the)g(v)-9 b(ariables)62 b Fo(a)g
Fs(and)g Fo(b)f Fs(m)-5 b(ust)63 b(b)5 b(e)61 b(protected)g(against)h
(the)f(p)5 b(ossibilit)-5 b(y)63 b(of)f(a)581 2316 y(garbage)56
b(collection)f(o)5 b(ccuring)55 b(during)h(the)f(call)h(to)e
Fo(s48)p 4197 2316 53 7 v 64 w(make)p 4609 2316 V 63
w(record\(\))p Fs(.)581 2853 y Fl(7.10)270 b(Raising)90
b(exceptions)f(from)i(external)d(co)7 b(de)581 3216 y
Fs(The)68 b(follo)-5 b(wing)69 b(macros)g(explicitly)e(raise)i(certain)
f(errors,)j(immediately)e(returning)f(to)581 3416 y(Sc)-5
b(heme)77 b(48.)135 b(Raising)77 b(an)f(exception)f(p)5
b(erforms)76 b(all)g(necessary)g(clean-up)h(actions)f(to)581
3615 y(prop)5 b(erly)62 b(return)g(to)g(Sc)-5 b(heme)63
b(48,)i(including)e(adjusting)g(the)f(stac)-5 b(k)62
b(of)g(protected)g(v)-9 b(ari-)581 3814 y(ables.)614
4055 y Fj(\017)83 b Fo(s48)p 1051 4055 V 64 w(raise)p
1550 4055 V 63 w(scheme)p 2135 4055 V 64 w(exception\(int)i(type,)f
(int)g(nargs,)g(...\))581 4295 y(s48)p 852 4295 V 63
w(raise)p 1350 4295 V 64 w(scheme)p 1936 4295 V 64 w(exception)40
b Fs(is)e(the)g(base)h(pro)5 b(cedure)38 b(for)g(raising)h(exceptions.)
68 b Fo(type)581 4495 y Fs(is)56 b(the)e(t)-5 b(yp)5
b(e)55 b(of)f(exception,)h(and)g(should)i(b)5 b(e)54
b(one)h(of)g(the)g Fo(S48)p 4508 4495 V 63 w(EXCEPTION)p
5354 4495 V 64 w Fs(.)28 b(.)g(.)g(constan)-5 b(ts)581
4694 y(de\014ned)74 b(in)g Fo(scheme48arch.h)p Fs(.)130
b Fo(nargs)74 b Fs(is)f(the)g(n)-5 b(um)g(b)5 b(er)75
b(of)e(additional)h(v)-9 b(alues)73 b(to)g(b)5 b(e)581
4893 y(included)53 b(in)g(the)f(exception;)g(these)g(follo)-5
b(w)53 b(the)f Fo(nargs)h Fs(argumen)-5 b(t)52 b(and)h(should)h(all)e
(ha)-5 b(v)g(e)581 5092 y(t)g(yp)5 b(e)55 b Fo(s48)p
1226 5092 V 63 w(value)p Fs(.)75 b Fo(s48)p 2106 5092
V 63 w(raise)p 2604 5092 V 64 w(scheme)p 3190 5092 V
64 w(exception)56 b Fs(nev)-5 b(er)56 b(returns.)830
5292 y(The)f(follo)-5 b(wing)56 b(pro)5 b(cedures)56
b(are)f(a)-5 b(v)c(ailable)55 b(for)g(raising)i(particular)e(t)-5
b(yp)5 b(es)55 b(of)g(excep-)581 5491 y(tions.)75 b(Lik)-5
b(e)55 b Fo(s48)p 1686 5491 V 63 w(raise)p 2184 5491
V 64 w(scheme)p 2770 5491 V 63 w(exception)i Fs(these)e(nev)-5
b(er)56 b(return.)614 5732 y Fj(\017)83 b Fo(s48)p 1051
5732 V 64 w(raise)p 1550 5732 V 63 w(argument)p 2309
5732 V 64 w(type)p 2721 5732 V 64 w(error\(s48)p 3568
5732 V 64 w(value\))614 5931 y Fj(\017)g Fo(s48)p 1051
5931 V 64 w(raise)p 1550 5931 V 63 w(argument)p 2309
5931 V 64 w(number)p 2895 5931 V 64 w(error\(int)i(nargs,)f(int)f(min,)
h(int)g(max\))614 6130 y Fj(\017)f Fo(s48)p 1051 6130
V 64 w(raise)p 1550 6130 V 63 w(range)p 2048 6130 V 64
w(error\(long)i(value,)f(long)f(min,)h(long)g(max\))614
6329 y Fj(\017)f Fo(s48)p 1051 6329 V 64 w(raise)p 1550
6329 V 63 w(closed)p 2135 6329 V 64 w(channel)p 2808
6329 V 64 w(error\(\))614 6529 y Fj(\017)g Fo(s48)p 1051
6529 V 64 w(raise)p 1550 6529 V 63 w(os)p 1787 6529 V
63 w(error\(int)i(errno\))614 6728 y Fj(\017)e Fo(s48)p
1051 6728 V 64 w(raise)p 1550 6728 V 63 w(out)p 1874
6728 V 64 w(of)p 2112 6728 V 63 w(memory)p 2697 6728
V 64 w(error\(\))581 6968 y Fs(An)50 b(argumen)-5 b(t)52
b(t)-5 b(yp)5 b(e)50 b(error)g(indicates)h(that)f(the)g(giv)-5
b(en)51 b(v)-9 b(alue)50 b(is)h(of)f(the)h(wrong)f(t)-5
b(yp)5 b(e.)72 b(An)581 7168 y(argumen)-5 b(t)51 b(n)-5
b(um)g(b)5 b(er)52 b(error)f(is)g(raised)g(when)g(the)f(n)-5
b(um)g(b)5 b(er)52 b(of)e(argumen)-5 b(ts,)53 b Fo(nargs)p
Fs(,)f(should)581 7367 y(b)5 b(e,)54 b(but)f(isn't,)i(b)5
b(et)-5 b(w)g(een)53 b Fo(min)h Fs(and)g Fo(max)p Fs(,)g(inclusiv)-5
b(e.)74 b(Similarly)-14 b(,)55 b(a)e(range)h(error)f(indicates)581
7566 y(that)i Fo(value)h Fs(is)g(not)f(b)5 b(et)-5 b(w)g(een)55
b(b)5 b(et)-5 b(w)g(een)56 b Fo(min)f Fs(and)h Fo(max)p
Fs(,)g(inclusiv)-5 b(e.)830 7765 y(The)54 b(follo)-5
b(wing)55 b(macros)g(raise)g(argumen)-5 b(t)55 b(t)-5
b(yp)5 b(e)54 b(errors)g(if)g(their)g(argumen)-5 b(t)55
b(do)5 b(es)55 b(not)581 7965 y(ha)-5 b(v)g(e)68 b(the)e(required)h(t)
-5 b(yp)5 b(e.)108 b Fo(S48)p 2680 7965 V 63 w(CHECK)p
3178 7965 V 64 w(BOOLEAN)68 b Fs(raises)g(an)f(error)g(if)g(its)g
(argumen)-5 b(t)68 b(is)581 8164 y(neither)55 b Fo(#t)h
Fs(or)f Fo(#f)p Fs(.)614 8405 y Fj(\017)83 b Fo(void)h(S48)p
1483 8405 V 63 w(CHECK)p 1981 8405 V 64 w(BOOLEAN\(s48)p
3002 8405 V 65 w(value\))614 8604 y Fj(\017)f Fo(void)h(S48)p
1483 8604 V 63 w(CHECK)p 1981 8604 V 64 w(SYMBOL\(s48)p
2915 8604 V 65 w(value\))614 8803 y Fj(\017)f Fo(void)h(S48)p
1483 8803 V 63 w(CHECK)p 1981 8803 V 64 w(PAIR\(s48)p
2741 8803 V 64 w(value\))614 9002 y Fj(\017)f Fo(void)h(S48)p
1483 9002 V 63 w(CHECK)p 1981 9002 V 64 w(STRING\(s48)p
2915 9002 V 65 w(value\))614 9202 y Fj(\017)f Fo(void)h(S48)p
1483 9202 V 63 w(CHECK)p 1981 9202 V 64 w(INTEGER\(s48)p
3002 9202 V 65 w(value\))614 9401 y Fj(\017)f Fo(void)h(S48)p
1483 9401 V 63 w(CHECK)p 1981 9401 V 64 w(CHANNEL\(s48)p
3002 9401 V 65 w(value\))614 9600 y Fj(\017)f Fo(void)h(S48)p
1483 9600 V 63 w(CHECK)p 1981 9600 V 64 w(BYTE)p 2393
9600 V 63 w(VECTOR\(s48)p 3326 9600 V 65 w(value\))614
9799 y Fj(\017)f Fo(void)h(S48)p 1483 9799 V 63 w(CHECK)p
1981 9799 V 64 w(RECORD\(s48)p 2915 9799 V 65 w(value\))614
9999 y Fj(\017)f Fo(void)h(S48)p 1483 9999 V 63 w(CHECK)p
1981 9999 V 64 w(SHARED)p 2567 9999 V 64 w(BINDING\(s48)p
3588 9999 V 64 w(value\))3362 10511 y Fs(93)p eop end
%%Page: 94 102
TeXDict begin 94 101 bop 1478 1046 a Fl(7.11)270 b(Unsafe)90
b(functions)g(and)h(macros)1478 1410 y Fs(All)48 b(of)h(the)f(C)h(pro)5
b(cedures)48 b(and)i(macros)f(describ)5 b(ed)49 b(ab)5
b(o)-5 b(v)g(e)49 b(c)-5 b(hec)g(k)49 b(that)f(their)g(argumen)-5
b(ts)1478 1609 y(ha)g(v)g(e)54 b(the)f(appropriate)g(t)-5
b(yp)5 b(es)53 b(and)h(that)f(indexes)h(are)f(in)h(range.)73
b(The)53 b(follo)-5 b(wing)54 b(pro)5 b(ce-)1478 1808
y(dures)43 b(and)g(macros)h(are)e(iden)-5 b(tical)43
b(to)g(those)g(describ)5 b(ed)43 b(ab)5 b(o)-5 b(v)g(e,)45
b(except)d(that)g(they)g(do)g(not)1478 2008 y(p)5 b(erform)63
b(t)-5 b(yp)5 b(e)63 b(and)h(range)g(c)-5 b(hec)g(ks.)99
b(They)63 b(are)g(pro)-5 b(vided)64 b(for)g(the)f(purp)5
b(ose)64 b(of)f(writing)1478 2207 y(more)55 b(e\016cien)-5
b(t)56 b(co)5 b(de;)55 b(their)g(general)g(use)h(is)g(not)f
(recommended.)1511 2506 y Fj(\017)83 b Fo(char)499 b(S48)p
2795 2506 53 7 v 63 w(UNSAFE)p 3380 2506 V 64 w(EXTRACT)p
4053 2506 V 64 w(CHAR\(s48)p 4813 2506 V 64 w(value\))1511
2705 y Fj(\017)83 b Fo(char)h(*)332 b(S48)p 2799 2705
V 63 w(UNSAFE)p 3384 2705 V 64 w(EXTRACT)p 4057 2705
V 64 w(STRING\(s48)p 4991 2705 V 65 w(value\))1511 2904
y Fj(\017)83 b Fo(long)499 b(S48)p 2795 2904 V 63 w(UNSAFE)p
3380 2904 V 64 w(EXTRACT)p 4053 2904 V 64 w(INTEGER\(s48)p
5074 2904 V 65 w(value\))1511 3103 y Fj(\017)83 b Fo(long)499
b(S48)p 2795 3103 V 63 w(UNSAFE)p 3380 3103 V 64 w(EXTRACT)p
4053 3103 V 64 w(DOUBLE\(s48)p 4987 3103 V 64 w(value\))1511
3402 y Fj(\017)83 b Fo(long)499 b(S48)p 2795 3402 V 63
w(UNSAFE)p 3380 3402 V 64 w(EXTRACT)p 4053 3402 V 64
w(FIXNUM\(s48)p 4987 3402 V 64 w(value\))1511 3602 y
Fj(\017)83 b Fo(s48)p 1948 3602 V 63 w(value)h(S48)p
2791 3602 V 63 w(UNSAFE)p 3376 3602 V 64 w(ENTER)p 3875
3602 V 64 w(FIXNUM\(long\))1511 3900 y Fj(\017)f Fo(s48)p
1948 3900 V 63 w(value)h(S48)p 2791 3900 V 63 w(UNSAFE)p
3376 3900 V 64 w(CAR\(s48)p 4049 3900 V 64 w(value\))1511
4100 y Fj(\017)f Fo(s48)p 1948 4100 V 63 w(value)h(S48)p
2791 4100 V 63 w(UNSAFE)p 3376 4100 V 64 w(CDR\(s48)p
4049 4100 V 64 w(value\))1511 4299 y Fj(\017)f Fo(void)499
b(S48)p 2795 4299 V 63 w(UNSAFE)p 3380 4299 V 64 w(SET)p
3705 4299 V 63 w(CAR\(s48)p 4377 4299 V 64 w(value,)84
b(s48)p 5308 4299 V 64 w(value\))1511 4498 y Fj(\017)f
Fo(void)499 b(S48)p 2795 4498 V 63 w(UNSAFE)p 3380 4498
V 64 w(SET)p 3705 4498 V 63 w(CDR\(s48)p 4377 4498 V
64 w(value,)84 b(s48)p 5308 4498 V 64 w(value\))1511
4797 y Fj(\017)f Fo(long)499 b(S48)p 2795 4797 V 63 w(UNSAFE)p
3380 4797 V 64 w(VECTOR)p 3966 4797 V 64 w(LENGTH\(s48)p
4900 4797 V 64 w(value\))1511 4996 y Fj(\017)83 b Fo(s48)p
1948 4996 V 63 w(value)h(S48)p 2791 4996 V 63 w(UNSAFE)p
3376 4996 V 64 w(VECTOR)p 3962 4996 V 64 w(REF\(s48)p
4635 4996 V 64 w(value,)g(long\))1511 5196 y Fj(\017)f
Fo(void)499 b(S48)p 2795 5196 V 63 w(UNSAFE)p 3380 5196
V 64 w(VECTOR)p 3966 5196 V 64 w(SET\(s48)p 4639 5196
V 64 w(value,)84 b(long,)g(s48)p 6089 5196 V 63 w(value\))1511
5494 y Fj(\017)f Fo(long)499 b(S48)p 2795 5494 V 63 w(UNSAFE)p
3380 5494 V 64 w(STRING)p 3966 5494 V 64 w(LENGTH\(s48)p
4900 5494 V 64 w(value\))1511 5694 y Fj(\017)83 b Fo(char)499
b(S48)p 2795 5694 V 63 w(UNSAFE)p 3380 5694 V 64 w(STRING)p
3966 5694 V 64 w(REF\(s48)p 4639 5694 V 64 w(value,)84
b(long\))1511 5893 y Fj(\017)f Fo(void)499 b(S48)p 2795
5893 V 63 w(UNSAFE)p 3380 5893 V 64 w(STRING)p 3966 5893
V 64 w(SET\(s48)p 4639 5893 V 64 w(value,)84 b(long,)g(char\))1511
6192 y Fj(\017)f Fo(s48)p 1948 6192 V 63 w(value)h(S48)p
2791 6192 V 63 w(UNSAFE)p 3376 6192 V 64 w(SYMBOL)p 3962
6192 V 64 w(TO)p 4200 6192 V 63 w(STRING\(s48)p 5133
6192 V 65 w(value\))1511 6491 y Fj(\017)f Fo(long)499
b(S48)p 2795 6491 V 63 w(UNSAFE)p 3380 6491 V 64 w(BYTE)p
3792 6491 V 63 w(VECTOR)p 4377 6491 V 64 w(LENGTH\(s48)p
5311 6491 V 65 w(value\))1511 6690 y Fj(\017)83 b Fo(char)499
b(S48)p 2795 6690 V 63 w(UNSAFE)p 3380 6690 V 64 w(BYTE)p
3792 6690 V 63 w(VECTOR)p 4377 6690 V 64 w(REF\(s48)p
5050 6690 V 64 w(value,)84 b(long\))1511 6889 y Fj(\017)f
Fo(void)499 b(S48)p 2795 6889 V 63 w(UNSAFE)p 3380 6889
V 64 w(BYTE)p 3792 6889 V 63 w(VECTOR)p 4377 6889 V 64
w(SET\(s48)p 5050 6889 V 64 w(value,)84 b(long,)g(int\))1511
7188 y Fj(\017)f Fo(s48)p 1948 7188 V 63 w(value)h(S48)p
2791 7188 V 63 w(UNSAFE)p 3376 7188 V 64 w(SHARED)p 3962
7188 V 64 w(BINDING)p 4635 7188 V 64 w(REF\(s48)p 5308
7188 V 64 w(value)g(s)p 5978 7188 V 63 w(b\))1511 7387
y Fj(\017)f Fo(int)582 b(S48)p 2791 7387 V 63 w(UNSAFE)p
3376 7387 V 64 w(SHARED)p 3962 7387 V 64 w(BINDING)p
4635 7387 V 64 w(P\(x\))1511 7587 y Fj(\017)83 b Fo(int)582
b(S48)p 2791 7587 V 63 w(UNSAFE)p 3376 7587 V 64 w(SHARED)p
3962 7587 V 64 w(BINDING)p 4635 7587 V 64 w(IS)p 4873
7587 V 63 w(IMPORT)p 5458 7587 V 63 w(P\(s48)p 5956 7587
V 64 w(value)84 b(s)p 6626 7587 V 63 w(b\))1511 7786
y Fj(\017)f Fo(s48)p 1948 7786 V 63 w(value)h(S48)p 2791
7786 V 63 w(UNSAFE)p 3376 7786 V 64 w(SHARED)p 3962 7786
V 64 w(BINDING)p 4635 7786 V 64 w(NAME\(s48)p 5395 7786
V 64 w(value)g(s)p 6065 7786 V 63 w(b\))1511 7985 y Fj(\017)f
Fo(void)499 b(S48)p 2795 7985 V 63 w(UNSAFE)p 3380 7985
V 64 w(SHARED)p 3966 7985 V 64 w(BINDING)p 4639 7985
V 64 w(SET\(s48)p 5312 7985 V 64 w(value)84 b(s)p 5982
7985 V 63 w(b,)f(s48)p 6563 7985 V 63 w(value)h(value\))1511
8284 y Fj(\017)f Fo(s48)p 1948 8284 V 63 w(value)h(S48)p
2791 8284 V 63 w(UNSAFE)p 3376 8284 V 64 w(RECORD)p 3962
8284 V 64 w(TYPE\(s48)p 4722 8284 V 64 w(value\))1511
8483 y Fj(\017)f Fo(s48)p 1948 8483 V 63 w(value)h(S48)p
2791 8483 V 63 w(UNSAFE)p 3376 8483 V 64 w(RECORD)p 3962
8483 V 64 w(REF\(s48)p 4635 8483 V 64 w(value,)g(long\))1511
8682 y Fj(\017)f Fo(void)499 b(S48)p 2795 8682 V 63 w(UNSAFE)p
3380 8682 V 64 w(RECORD)p 3966 8682 V 64 w(SET\(s48)p
4639 8682 V 64 w(value,)84 b(long,)g(s48)p 6089 8682
V 63 w(value\))1511 8981 y Fj(\017)f Fo(type)499 b(S48)p
2795 8981 V 63 w(UNSAFE)p 3380 8981 V 64 w(EXTRACT)p
4053 8981 V 64 w(VALUE\(s48)p 4900 8981 V 64 w(value,)84
b(type\))1511 9181 y Fj(\017)f Fo(type)h(*)332 b(S48)p
2799 9181 V 63 w(UNSAFE)p 3384 9181 V 64 w(EXTRACT)p
4057 9181 V 64 w(VALUE)p 4556 9181 V 64 w(POINTER\(s48)p
5577 9181 V 64 w(value,)84 b(type\))1511 9380 y Fj(\017)f
Fo(void)499 b(S48)p 2795 9380 V 63 w(UNSAFE)p 3380 9380
V 64 w(SET)p 3705 9380 V 63 w(VALUE\(s48)p 4551 9380
V 65 w(value,)84 b(type,)f(value\))4259 10511 y Fs(94)p
eop end
%%Page: 95 103
TeXDict begin 95 102 bop 581 2311 a Fn(Chapter)130 b(8)581
3160 y Fq(Access)155 b(to)g(POSIX)581 4043 y Fs(This)56
b(c)-5 b(hapter)56 b(describ)5 b(es)56 b(Sc)-5 b(heme)56
b(48's)g(in)-5 b(terface)55 b(to)g(the)g(POSIX)g(C)h(calls)g([1].)74
b(Sc)-5 b(heme)581 4242 y(v)g(ersions)47 b(of)e(most)h(of)g(the)f
(functions)h(in)g(POSIX)f(are)h(pro)-5 b(vided.)71 b(Both)45
b(the)g(in)-5 b(terface)45 b(and)581 4441 y(implemen)-5
b(tation)48 b(are)f(new)g(and)g(are)g(lik)-5 b(ely)46
b(to)h(c)-5 b(hange)47 b(in)h(future)e(releases.)72 b(Section)46
b(8.10)581 4641 y(lists)56 b(whic)-5 b(h)56 b(Sc)-5 b(heme)56
b(functions)g(call)g(whic)-5 b(h)56 b(C)f(functions.)830
4859 y(Sc)-5 b(heme)68 b(48's)f(POSIX)g(in)-5 b(terface)66
b(will)h(lik)-5 b(ely)67 b(c)-5 b(hange)67 b(signi\014can)-5
b(tly)68 b(in)f(the)g(future.)581 5058 y(The)55 b(implemen)-5
b(tation)57 b(is)f(new)f(and)h(ma)-5 b(y)56 b(ha)-5 b(v)g(e)56
b(signi\014can)-5 b(t)56 b(bugs.)830 5277 y(The)g(POSIX)f(bindings)i
(are)e(a)-5 b(v)c(ailable)56 b(in)f(sev)-5 b(eral)56
b(structures:)1542 5728 y Fo(posix-processes)464 b Fs(fork,)55
b(exec,)f(and)i(friends)1542 5927 y Fo(posix-process-data)203
b Fs(information)56 b(ab)5 b(out)55 b(pro)5 b(cesses)1542
6126 y Fo(posix-files)812 b Fs(\014les)56 b(and)g(directories)1542
6326 y Fo(posix-i/o)986 b Fs(op)5 b(erations)55 b(on)h(p)5
b(orts)1542 6525 y Fo(posix-time)899 b Fs(time)55 b(functions)1542
6724 y Fo(posix-users)812 b Fs(users)56 b(and)g(groups)1542
6923 y Fo(posix-regexps)638 b Fs(regular)55 b(expression)i(matc)-5
b(hing)1542 7123 y Fo(posix)1334 b Fs(all)55 b(of)g(the)g(ab)5
b(o)-5 b(v)g(e)830 7567 y(Sc)g(heme)75 b(48's)h(POSIX)e(in)-5
b(terface)74 b(di\013ers)h(from)g(Scsh's)h([11,)f(12])g(in)g(sev)-5
b(eral)75 b(w)-5 b(a)g(ys.)581 7766 y(The)67 b(in)-5
b(terface)67 b(here)g(lac)-5 b(ks)68 b(Scsh's)h(high-lev)-5
b(el)68 b(constructs)f(and)h(utilities,)j(suc)-5 b(h)68
b(as)g(the)581 7965 y(pro)5 b(cess)58 b(notation,)f Fo(awk)h
Fs(pro)5 b(cedure,)57 b(and)g(parsing)i(utilities.)79
b(Sc)-5 b(heme)57 b(48)g(uses)h(distinct)581 8164 y(t)-5
b(yp)5 b(es)69 b(for)g(some)h(v)-9 b(alues)70 b(that)e(Scsh)i(lea)-5
b(v)g(es)70 b(as)g(sym)-5 b(b)5 b(ols)71 b(or)e(un)-5
b(b)5 b(o)-5 b(xed)70 b(in)-5 b(tegers;)77 b(these)581
8364 y(include)60 b(\014le)g(t)-5 b(yp)5 b(es,)60 b(\014le)g(mo)5
b(des,)61 b(and)f(user)g(and)g(group)g(ids.)87 b(Man)-5
b(y)60 b(of)g(the)f(names)h(and)581 8563 y(other)55 b(in)-5
b(terface)55 b(details)h(are)f(di\013eren)-5 b(t,)56
b(as)f(w)-5 b(ell.)581 9214 y Fl(8.1)270 b(Pro)7 b(cess)90
b(primitiv)-7 b(es)581 9614 y Fs(The)63 b(pro)5 b(cedures)64
b(describ)5 b(ed)64 b(in)f(this)h(section)g(con)-5 b(trol)63
b(the)g(creation)g(of)g(pro)5 b(cesses)64 b(and)581 9813
y(the)80 b(execution)f(of)h(programs.)149 b(They)80 b(are)g(in)g(the)g
(structures)g Fo(posix-process)i Fs(and)581 10012 y Fo(posix)p
Fs(.)3362 10511 y(95)p eop end
%%Page: 96 104
TeXDict begin 96 103 bop 1478 1046 a Ff(8.1.1)225 b(Pro)6
b(cess)75 b(creation)f(and)g(termination)1511 1353 y
Fj(\017)83 b Fo(\(fork\))h Fj(!)f Fr(pr)-8 b(o)g(c)g(ess-id)82
b(or)h Fo(#f)1511 1552 y Fj(\017)g Fo(\(fork-and-forget)j
Fr(thunk)18 b Fo(\))1478 1841 y(Fork)48 b Fs(creates)f(a)g(new)g(c)-5
b(hild)49 b(pro)5 b(cess)47 b(and)h(returns)g(the)f(c)-5
b(hild's)49 b(pro)5 b(cess-id)48 b(in)g(the)f(paren)-5
b(t)1478 2040 y(and)49 b Fo(#f)g Fs(in)f(the)h(c)-5 b(hild.)72
b Fo(Fork-and-forget)51 b Fs(calls)e Fr(thunk)67 b Fs(in)49
b(a)g(new)f(pro)5 b(cess;)52 b(no)c(pro)5 b(cess-)1478
2239 y(id)47 b(is)g(returned.)71 b Fo(Fork-and-forget)49
b Fs(uses)e(an)g(in)-5 b(termediate)46 b(pro)5 b(cess)47
b(to)f(a)-5 b(v)g(oid)48 b(creating)1478 2439 y(a)55
b(zom)-5 b(bie)56 b(pro)5 b(cess.)1511 2727 y Fj(\017)83
b Fo(\(process-id?)102 b Fr(x)20 b Fo(\))83 b Fj(!)g
Fr(b)-8 b(o)g(ole)g(an)1511 2927 y Fj(\017)83 b Fo(\(process-id=?)102
b Fr(pr)-8 b(o)g(c)g(ess-id0)82 b(pr)-8 b(o)g(c)g(ess-id1)23
b Fo(\))82 b Fj(!)h Fr(b)-8 b(o)g(ole)g(an)1511 3126
y Fj(\017)83 b Fo(\(process-id->integer)k Fr(pr)-8 b(o)g(c)g(ess-id)17
b Fo(\))82 b Fj(!)h Fr(inte)-8 b(ger)1511 3325 y Fj(\017)83
b Fo(\(integer->process-id)k Fr(inte)-8 b(ger)18 b Fo(\))84
b Fj(!)f Fr(pr)-8 b(o)g(c)g(ess-id)1478 3614 y Fo(Process-id?)126
b Fs(is)72 b(a)g(predicate)g(for)g(pro)5 b(cess-ids,)78
b Fo(process-id=?)126 b Fs(compares)72 b(t)-5 b(w)g(o)73
b(to)1478 3813 y(see)85 b(if)g(they)f(are)g(the)h(same,)93
b(and)86 b Fo(process-id-uid)h Fs(returns)e(the)g(actual)f(Unix)h(id.)
1478 4013 y Fo(Process-id->integer)71 b Fs(and)d Fo
(integer->process-id)j Fs(con)-5 b(v)g(ert)68 b(pro)5
b(cess)69 b(ids)f(to)g(and)1478 4212 y(from)55 b(in)-5
b(tegers.)1511 4501 y Fj(\017)83 b Fo(\(process-id-exit-status)k
Fr(pr)-8 b(o)g(c)g(ess-id)17 b Fo(\))82 b Fj(!)h Fr(inte)-8
b(ger)85 b(or)e Fo(#f)1511 4700 y Fj(\017)g Fo
(\(process-id-terminating-signal)88 b Fr(pr)-8 b(o)g(c)g(ess-id)17
b Fo(\))83 b Fj(!)g Fr(signal)h(or)e Fo(#f)1511 4899
y Fj(\017)h Fo(\(wait-for-child-process)k Fr(pr)-8 b(o)g(c)g(ess-id)17
b Fo(\))1478 5188 y Fs(If)58 b(a)g(pro)5 b(cess)58 b(terminates)h
(normally)i Fo(process-id-exit-status)g Fs(will)e(return)f(its)g(exit)
1478 5388 y(status.)174 b(If)88 b(the)g(pro)5 b(cess)89
b(is)g(still)g(running)h(or)f(w)-5 b(as)89 b(terminated)f(b)-5
b(y)89 b(a)g(signal)g(then)1478 5587 y Fo(process-id-exit-status)i
Fs(will)e(return)f Fo(#f)p Fs(.)171 b(Similarly)-14 b(,)98
b(if)87 b(a)h(c)-5 b(hild)89 b(pro)5 b(cess)88 b(w)-5
b(as)1478 5786 y(terminated)58 b(b)-5 b(y)59 b(a)f(signal)h
Fo(process-id-terminating-signal)64 b Fs(will)58 b(return)h(that)e
(sig-)1478 5985 y(nal)73 b(and)g(will)g(return)f Fo(#f)h
Fs(if)g(the)f(pro)5 b(cess)73 b(is)g(still)h(running)f(or)g(terminated)
f(normally)-14 b(.)1478 6185 y Fo(Wait-for-child-process)52
b Fs(blo)5 b(c)-5 b(ks)48 b(un)-5 b(til)48 b(the)g(c)-5
b(hild)49 b(pro)5 b(cess)48 b(terminates.)72 b(Sc)-5
b(heme)48 b(48)1478 6384 y(ma)-5 b(y)59 b(reap)g(c)-5
b(hild)60 b(pro)5 b(cesses)60 b(b)5 b(efore)58 b(the)h(user)h(requests)
f(their)g(exit)f(status,)i(but)f(it)g(do)5 b(es)1478
6583 y(not)55 b(alw)-5 b(a)g(ys)56 b(do)g(so.)1511 6872
y Fj(\017)83 b Fo(\(exit)h Fr(status)14 b Fo(\))1478
7161 y Fs(T)-14 b(erminates)56 b(the)f(curren)-5 b(t)55
b(pro)5 b(cess)56 b(with)f(the)g(in)-5 b(teger)55 b Fr(status)70
b Fs(as)55 b(its)h(exit)e(status.)1478 7624 y Ff(8.1.2)225
b Fe(Exec)1511 7930 y Fj(\017)83 b Fo(\(exec)h Fr(pr)-8
b(o)g(gr)g(am-name)82 b(ar)-8 b(g0)83 b(.)25 b(.)g(.)g
Fo(\))1511 8129 y Fj(\017)83 b Fo(\(exec-with-environment)k
Fr(pr)-8 b(o)g(gr)g(am-name)82 b(env)i(ar)-8 b(g0)83
b(.)25 b(.)g(.)g Fo(\))1511 8329 y Fj(\017)83 b Fo(\(exec-file)i
Fr(\014lename)f(ar)-8 b(g0)83 b(.)25 b(.)g(.)g Fo(\))1511
8528 y Fj(\017)83 b Fo(\(exec-file-with-environment)88
b Fr(\014lename)c(env)g(ar)-8 b(g0)83 b(.)25 b(.)g(.)g
Fo(\))1511 8727 y Fj(\017)83 b Fo(\(exec-with-alias)j
Fr(name)d(lo)-8 b(okup?)100 b(mayb)-8 b(e-env)84 b(ar)-8
b(guments)14 b Fo(\))1478 9016 y Fs(All)66 b(of)h(these)f(replace)h
(the)f(curren)-5 b(t)67 b(program)g(with)g(a)f(new)h(one.)108
b(They)66 b(di\013er)h(in)g(ho)-5 b(w)1478 9215 y(the)78
b(new)g(program)h(is)f(found,)85 b(what)78 b(its)g(en)-5
b(vironmen)g(t)79 b(is,)85 b(and)78 b(what)g(argumen)-5
b(ts)80 b(it)1478 9415 y(is)j(passed.)157 b Fo(Exec)83
b Fs(and)g Fo(exec-with-environment)j Fs(lo)5 b(ok)82
b(up)h(the)f(new)h(program)g(in)1478 9614 y(the)61 b(searc)-5
b(h)63 b(path,)h(while)e Fo(exec-file)h Fs(and)f Fo
(exec-file-with-environment)67 b Fs(execute)1478 9813
y(a)79 b(particular)f(\014le.)145 b(The)78 b(en)-5 b(vironmen)g(t)80
b(is)f(either)g(inherited)g(from)f(the)h(curren)-5 b(t)79
b(pro-)1478 10012 y(cess)52 b(\()p Fo(exec)g Fs(and)g
Fo(exec-file)p Fs(\))g(or)g(giv)-5 b(en)52 b(as)g(an)f(argumen)-5
b(t)53 b(\()p Fo(...-with-environment)p Fs(\).)4259 10511
y(96)p eop end
%%Page: 97 105
TeXDict begin 97 104 bop 581 1046 a Fr(Pr)-8 b(o)g(gr)g(am-name)73
b Fs(and)63 b Fr(\014lename)75 b Fs(and)63 b(an)-5 b(y)64
b Fr(ar)-8 b(g)3595 1071 y Fd(i)3712 1046 y Fs(should)63
b(b)5 b(e)62 b(strings.)94 b Fr(Env)80 b Fs(should)63
b(b)5 b(e)62 b(a)581 1245 y(list)67 b(of)g(strings)g(of)g(the)f(form)h
Fo(")p Fr(name)12 b Fo(=)p Fr(value)g Fo(")p Fs(.)111
b(The)67 b(\014rst)g(four)g(pro)5 b(cedures)67 b(add)g(their)581
1445 y(\014rst)56 b(argumen)-5 b(t,)56 b Fr(pr)-8 b(o)g(gr)g(am-name)67
b Fs(or)55 b Fr(\014lename)12 b Fs(,)58 b(b)5 b(efore)54
b(the)h Fr(ar)-8 b(g0)59 b(.)25 b(.)g(.)100 b Fs(argumen)-5
b(ts.)830 1724 y Fo(Exec-with-alias)72 b Fs(is)e(an)f(omnibus)i(pro)5
b(cedure)69 b(that)g(subsumes)j(the)d(other)g(four.)581
1923 y Fr(Name)94 b Fs(is)83 b(lo)5 b(ok)-5 b(ed)81 b(up)h(in)f(the)g
(searc)-5 b(h)83 b(path)e(if)94 b Fr(lo)-8 b(okup?)173
b Fs(is)82 b(true)f(and)h(is)g(used)g(as)g(a)581 2122
y(\014lename)58 b(otherwise.)79 b Fr(Mayb)-8 b(e-env)76
b Fs(is)57 b(either)g(a)g(list)g(of)g(strings)h(for)e(the)h(en)-5
b(vironmen)g(t)58 b(of)581 2321 y(the)52 b(new)g(program)h(or)f
Fo(#f)g Fs(in)h(whic)-5 b(h)53 b(case)f(the)g(new)g(program)h(inherits)
f(its)h(en)-5 b(vironmen)g(t)581 2521 y(from)70 b(the)f(curren)-5
b(t)70 b(one.)117 b Fr(A)l(r)-8 b(guments)84 b Fs(should)71
b(b)5 b(e)69 b(a)g(list)h(of)g(strings;)77 b(unlik)-5
b(e)71 b(with)e(the)581 2720 y(other)55 b(four)h(pro)5
b(cedures,)55 b Fr(name)69 b Fs(is)56 b(not)f(added)h(to)f(this)g(list)
h(\(hence)f Fo(-with-alias)p Fs(\).)581 3693 y Fl(8.2)270
b(Signals)581 4205 y Fs(There)64 b(are)f(t)-5 b(w)g(o)64
b(v)-9 b(arieties)64 b(of)f(signals)j(a)-5 b(v)c(ailable,)66
b Fr(name)-8 b(d)63 b Fs(and)i Fr(anonymous)p Fs(.)99
b(A)63 b(named)581 4404 y(signal)52 b(is)e(one)h(for)f(whic)-5
b(h)51 b(w)-5 b(e)50 b(ha)-5 b(v)g(e)51 b(a)g(sym)-5
b(b)5 b(olic)51 b(name,)h(suc)-5 b(h)51 b(as)g Fo(kill)g
Fs(or)f Fo(pipe)p Fs(.)73 b(Anon)-5 b(y-)581 4603 y(mous)84
b(signals,)91 b(for)82 b(whic)-5 b(h)83 b(w)-5 b(e)83
b(only)f(ha)-5 b(v)g(e)83 b(the)f(curren)-5 b(t)83 b(op)5
b(erating)82 b(system's)i(signal)581 4803 y(n)-5 b(um)g(b)5
b(er,)62 b(ha)-5 b(v)g(e)60 b(no)g(meaning)h(in)f(other)f(op)5
b(erating)59 b(systems.)88 b(Named)59 b(signals)i(preserv)-5
b(e)581 5002 y(their)59 b(meaning)g(in)g(image)g(\014les.)85
b(Not)58 b(all)h(named)g(signals)h(are)f(a)-5 b(v)c(ailable)59
b(from)g(all)g(OS's)581 5201 y(and)d(there)f(ma)-5 b(y)56
b(b)5 b(e)55 b(m)-5 b(ultiple)56 b(names)g(for)f(a)h(single)g(OS)g
(signal)g(n)-5 b(um)g(b)5 b(er.)614 5740 y Fj(\017)83
b Fo(\(signal)i Fr(signal-name)12 b Fo(\))57 b Fj(!)f
Fr(signal)2703 b Fs(syn)-5 b(tax)614 5939 y Fj(\017)83
b Fo(\(name->signal)j Fr(symb)-8 b(ol)17 b Fo(\))83 b
Fj(!)g Fr(signal)g(or)g Fo(#f)614 6138 y Fj(\017)g Fo
(\(integer->signal)j Fr(inte)-8 b(ger)18 b Fo(\))84 b
Fj(!)f Fr(signal)614 6337 y Fj(\017)g Fo(\(signal?)102
b Fr(x)20 b Fo(\))83 b Fj(!)g Fr(b)-8 b(o)g(ole)g(an)614
6537 y Fj(\017)83 b Fo(\(signal-name)i Fr(signal)17 b
Fo(\))85 b Fj(!)e Fr(symb)-8 b(ol)82 b(or)h Fo(#f)614
6736 y Fj(\017)g Fo(\(signal-os-number)j Fr(signal)17
b Fo(\))85 b Fj(!)e Fr(inte)-8 b(ger)614 6935 y Fj(\017)83
b Fo(\(signal=?)102 b Fr(signal0)84 b(signal1)23 b Fo(\))83
b Fj(!)g Fr(b)-8 b(o)g(ole)g(an)581 7473 y Fs(The)37
b(syn)-5 b(tax)37 b Fo(signal)h Fs(returns)f(a)g(\(named\))g(signal)h
(asso)5 b(ciated)37 b(with)g Fr(signal-name)12 b Fs(.)70
b Fo(Name->signal)581 7673 y Fs(returns)62 b(a)f(\(named\))g(signal)i
(or)e Fo(#f)h Fs(if)f(the)g(the)g(signal)h Fr(name)74
b Fs(is)62 b(not)g(supp)5 b(orted)61 b(b)-5 b(y)62 b(the)581
7872 y(op)5 b(erating)58 b(system.)82 b(The)58 b(signal)h(returned)f(b)
-5 b(y)60 b Fo(integer->signal)h Fs(is)d(a)g(named)h(signal)581
8071 y(if)72 b Fr(inte)-8 b(ger)78 b Fs(corresp)5 b(onds)61
b(to)e(a)g(named)h(signal)g(in)g(the)e(curren)-5 b(t)60
b(op)5 b(erating)59 b(system;)i(oth-)581 8270 y(erwise)54
b(it)f(returns)g(an)h(anon)-5 b(ymous)55 b(signal.)74
b Fo(Signal-name)55 b Fs(returns)f(a)g(sym)-5 b(b)5 b(ol)54
b(if)66 b Fr(signal)581 8470 y Fs(is)49 b(named)h(and)f
Fo(#f)g Fs(if)f(it)g(is)i(anon)-5 b(ymous.)73 b Fo(Signal=?)g
Fs(returns)49 b Fo(#t)g Fs(if)61 b Fr(signal0)72 b Fs(and)49
b Fr(signal1)581 8669 y Fs(ha)-5 b(v)g(e)56 b(the)f(same)h(op)5
b(erating)55 b(system)h(n)-5 b(um)g(b)5 b(er)56 b(and)g
Fo(#f)g Fs(if)f(they)g(do)g(not.)581 9557 y Ff(8.2.1)225
b(POSIX)76 b(signals)581 10012 y Fs(The)55 b(follo)-5
b(wing)57 b(lists)f(the)f(names)h(of)f(the)g(POSIX)g(signals.)3362
10511 y(97)p eop end
%%Page: 98 106
TeXDict begin 98 105 bop 1577 1202 a Fo(abrt)200 b Fs(ab)5
b(ort)55 b(-)h(abnormal)g(termination)g(\(as)f(b)-5 b(y)56
b(ab)5 b(ort\(\)\))1577 1401 y Fo(alrm)200 b Fs(alarm)56
b(-)g(timeout)f(signal)h(\(as)g(b)-5 b(y)55 b(alarm\(\)\))1577
1601 y Fo(fpe)287 b Fs(\015oating)56 b(p)5 b(oin)-5 b(t)56
b(exception)1577 1800 y Fo(hup)287 b Fs(hangup)57 b(-)e(hangup)i(on)e
(con)-5 b(trolling)57 b(terminal)e(or)h(death)f(of)g(con)-5
b(trolling)56 b(pro)5 b(cess)1577 1999 y Fo(ill)287 b
Fs(illegal)56 b(instruction)1577 2198 y Fo(int)287 b
Fs(in)-5 b(terrupt)56 b(-)g(in)-5 b(teraction)55 b(atten)-5
b(tion)1577 2398 y Fo(kill)200 b Fs(kill)56 b(-)f(termination)h
(signal,)g(cannot)g(b)5 b(e)55 b(caugh)-5 b(t)55 b(or)h(ignored)1577
2597 y Fo(pipe)200 b Fs(pip)5 b(e)56 b(-)f(write)g(on)h(a)f(pip)5
b(e)56 b(with)f(no)g(readers)1577 2796 y Fo(quit)200
b Fs(quit)55 b(-)h(in)-5 b(teraction)55 b(termination)1577
2995 y Fo(segv)200 b Fs(segmen)-5 b(tation)56 b(violation)g(-)f(in)-5
b(v)c(alid)56 b(memory)g(reference)1577 3195 y Fo(term)200
b Fs(termination)56 b(-)g(termination)f(signal)1577 3394
y Fo(usr1)200 b Fs(user1)56 b(-)g(for)f(use)h(b)-5 b(y)56
b(applications)1577 3593 y Fo(usr2)200 b Fs(user2)56
b(-)g(for)f(use)h(b)-5 b(y)56 b(applications)1577 3792
y Fo(chld)200 b Fs(c)-5 b(hild)57 b(-)e(c)-5 b(hild)57
b(pro)5 b(cess)55 b(stopp)5 b(ed)56 b(or)f(terminated)1577
3992 y Fo(cont)200 b Fs(con)-5 b(tin)g(ue)57 b(-)e(con)-5
b(tin)g(ue)56 b(if)g(stopp)5 b(ed)1577 4191 y Fo(stop)200
b Fs(stop)56 b(-)g(cannot)f(b)5 b(e)55 b(caugh)-5 b(t)56
b(or)f(ignored)1577 4390 y Fo(tstp)200 b Fs(in)-5 b(teractiv)g(e)55
b(stop)1577 4589 y Fo(ttin)200 b Fs(read)56 b(from)f(con)-5
b(trol)56 b(terminal)g(attempted)e(b)-5 b(y)56 b(bac)-5
b(kground)56 b(pro)5 b(cess)1577 4789 y Fo(ttou)200 b
Fs(write)55 b(to)g(con)-5 b(trol)56 b(terminal)f(attempted)g(b)-5
b(y)55 b(bac)-5 b(kground)57 b(pro)5 b(cess)1577 4988
y Fo(bus)287 b Fs(bus)57 b(error)e(-)h(access)f(to)g(unde\014ned)i(p)5
b(ortion)55 b(of)g(memory)1478 5435 y Ff(8.2.2)225 b(Other)74
b(signals)1478 5742 y Fs(The)83 b(follo)-5 b(wing)83
b(lists)h(the)f(names)h(of)f(the)f(non-POSIX)i(signals)g(that)f(the)f
(system)i(is)1478 5941 y(curren)-5 b(tly)55 b(a)-5 b(w)g(are)56
b(of.)2624 6445 y Fo(trap)374 b Fs(trace)55 b(or)g(breakp)5
b(oin)-5 b(t)56 b(trap)2624 6644 y Fo(iot)461 b Fs(IOT)56
b(trap)f(-)h(a)f(synon)-5 b(ym)57 b(for)e(ABR)-14 b(T)2624
6843 y Fo(emt)2624 7042 y(sys)461 b Fs(bad)56 b(argumen)-5
b(t)56 b(to)f(routine)h(\(SVID\))2624 7242 y Fo(stkflt)200
b Fs(stac)-5 b(k)56 b(fault)f(on)g(copro)5 b(cessor)2624
7441 y Fo(urg)461 b Fs(urgen)-5 b(t)56 b(condition)g(on)f(so)5
b(c)-5 b(k)g(et)56 b(\(4.2)f(BSD\))2624 7640 y Fo(io)548
b Fs(I/O)56 b(no)-5 b(w)56 b(p)5 b(ossible)56 b(\(4.2)f(BSD\))2624
7839 y Fo(poll)374 b Fs(A)55 b(synon)-5 b(ym)57 b(for)e(SIGIO)h
(\(System)f(V\))2624 8039 y Fo(cld)461 b Fs(A)55 b(synon)-5
b(ym)57 b(for)e(SIGCHLD)2624 8238 y Fo(xcpu)374 b Fs(CPU)55
b(time)g(limit)h(exceeded)f(\(4.2)g(BSD\))2624 8437 y
Fo(xfsz)374 b Fs(File)56 b(size)g(limit)f(exceeded)g(\(4.2)g(BSD\))2624
8636 y Fo(vtalrm)200 b Fs(Virtual)55 b(alarm)h(clo)5
b(c)-5 b(k)55 b(\(4.2)g(BSD\))2624 8836 y Fo(prof)374
b Fs(Pro\014le)56 b(alarm)g(clo)5 b(c)-5 b(k)2624 9035
y Fo(pwr)461 b Fs(P)-5 b(o)g(w)g(er)57 b(failure)e(\(System)g(V\))2624
9234 y Fo(info)374 b Fs(A)55 b(synon)-5 b(ym)57 b(for)e(SIGPWR)2624
9433 y Fo(lost)374 b Fs(File)56 b(lo)5 b(c)-5 b(k)55
b(lost)2624 9633 y Fo(winch)287 b Fs(Windo)-5 b(w)56
b(resize)g(signal)g(\(4.3)f(BSD,)g(Sun\))2624 9832 y
Fo(unused)200 b Fs(Un)-5 b(used)57 b(signal)4259 10511
y(98)p eop end
%%Page: 99 107
TeXDict begin 99 106 bop 581 1541 a Ff(8.2.3)225 b(Sending)74
b(signals)614 1853 y Fj(\017)83 b Fo(\(signal-process)j
Fr(pr)-8 b(o)g(c)g(ess-id)82 b(signal)17 b Fo(\))581
2168 y Fs(Send)56 b Fr(signal)73 b Fs(to)55 b(the)g(pro)5
b(cess)56 b(corresp)5 b(onding)56 b(to)f Fr(pr)-8 b(o)g(c)g(ess-id)17
b Fs(.)581 2664 y Ff(8.2.4)225 b(Receiving)76 b(signals)581
2981 y Fs(Signals)54 b(receiv)-5 b(ed)51 b(b)-5 b(y)53
b(the)e(Sc)-5 b(heme)53 b(pro)5 b(cess)53 b(can)f(b)5
b(e)51 b(obtained)i(via)f(one)g(or)g(more)g(signal-)581
3180 y(queues.)70 b(Eac)-5 b(h)43 b(signal)g(queue)f(has)h(a)f(list)h
(of)f(monitored)g(signals)i(and)f(a)f(queue)g(of)g(receiv)-5
b(ed)581 3379 y(signals)40 b(that)f(ha)-5 b(v)g(e)39
b(y)-5 b(et)38 b(to)g(b)5 b(e)39 b(read)g(from)g(the)f(signal-queue.)70
b(When)38 b(the)h(Sc)-5 b(heme)39 b(pro)5 b(cess)581
3578 y(receiv)-5 b(es)55 b(a)g(signal)g(that)g(signal)g(is)h(added)f
(to)g(the)f(receiv)-5 b(ed-signal)56 b(queues)f(of)f(all)h(signal-)581
3778 y(queues)h(whic)-5 b(h)56 b(are)f(curren)-5 b(tly)55
b(monitoring)h(that)f(particular)h(signal.)614 4094 y
Fj(\017)83 b Fo(\(make-signal-queue)k Fr(signals)14 b
Fo(\))83 b Fj(!)g Fr(signal-queue)614 4293 y Fj(\017)g
Fo(\(signal-queue?)103 b Fr(x)20 b Fo(\))83 b Fj(!)g
Fr(b)-8 b(o)g(ole)g(an)614 4492 y Fj(\017)83 b Fo
(\(signal-queue-monitored-signals)89 b Fr(signal-queue)12
b Fo(\))86 b Fj(!)d Fr(list)h(of)e(signals)614 4691 y
Fj(\017)h Fo(\(dequeue-signal!)103 b Fr(signal-queue)12
b Fo(\))86 b Fj(!)e Fr(signal)614 4891 y Fj(\017)f Fo
(\(maybe-dequeue-signal!)104 b Fr(signal-queue)12 b Fo(\))86
b Fj(!)e Fr(signal)f(or)g Fo(#f)581 5207 y(Make-signal-queue)51
b Fs(returns)e(a)f(new)g(signal-queue)i(that)d(will)i(monitor)g(the)f
(signals)h(in)581 5406 y(the)37 b(list)g Fr(signals)14
b Fs(.)68 b Fo(Signal-queue?)i Fs(is)37 b(a)g(predicate)g(for)g(signal)
h(queues.)67 b Fo(Signal-queue-monitored-signals)581
5605 y Fs(returns)37 b(a)g(list)h(of)e(the)h(signals)h(curren)-5
b(tly)37 b(monitored)g(b)-5 b(y)40 b Fr(signal-queue)12
b Fs(.)71 b Fo(Dequeue-signal!)581 5804 y Fs(and)k Fo
(maybe-dequeue-signal)k Fs(b)5 b(oth)74 b(return)h(the)f(next)g(receiv)
-5 b(ed-but-unread)76 b(signal)581 6004 y(from)43 b Fr(signal-queue)12
b Fs(.)73 b(If)55 b Fr(signal-queue)12 b Fs('s)47 b(queue)42
b(of)g(signals)j(is)e(empt)-5 b(y)45 b Fo(dequeue-signal!)581
6203 y Fs(blo)5 b(c)-5 b(ks)68 b(un)-5 b(til)68 b(an)f(appropriate)h
(signal)g(is)g(receiv)-5 b(ed.)109 b Fo(Maybe-dequeue-signal!)k
Fs(do)5 b(es)581 6402 y(not)55 b(blo)5 b(c)-5 b(k;)56
b(it)f(returns)g Fo(#f)h Fs(instead.)830 6607 y(There)46
b(is)g(a)g(bug)g(in)g(the)g(curren)-5 b(t)46 b(system)g(that)f(causes)i
(an)f(erroneous)g(deadlo)5 b(c)-5 b(k)46 b(error)581
6806 y(if)59 b(threads)g(are)g(blo)5 b(c)-5 b(k)g(ed)59
b(w)-5 b(aiting)59 b(for)f(signals)j(and)e(no)g(other)f(threads)h(are)g
(a)-5 b(v)c(ailable)59 b(to)581 7006 y(run.)119 b(A)70
b(w)-5 b(ork)70 b(around)i(is)e(to)g(create)g(a)g(thread)g(that)g
(sleeps)h(for)f(a)g(long)h(time,)j(whic)-5 b(h)581 7205
y(prev)g(en)g(ts)56 b(an)-5 b(y)56 b(deadlo)5 b(c)-5
b(k)55 b(errors)h(\(including)g(real)f(ones\):)581 7560
y Fo(>)87 b(,open)i(threads)581 7759 y(>)e(\(spawn)i(\(lambda)f(\(\))
1540 7958 y(;)f(Sleep)h(for)g(a)f(year)1540 8157 y(\(sleep)h(\(*)g
(1000)g(60)f(60)h(24)f(365\)\)\)\))614 8501 y Fj(\017)c
Fo(\(add-signal-queue-signal!)88 b Fr(signal-queue)d(signal)17
b Fo(\))614 8700 y Fj(\017)83 b Fo(\(remove-signal-queue-signal!)88
b Fr(signal-queue)e(signal)17 b Fo(\))581 9016 y Fs(These)83
b(t)-5 b(w)g(o)83 b(pro)5 b(cedures)82 b(can)h(b)5 b(e)82
b(used)h(to)f(add)h(or)f(remo)-5 b(v)g(e)83 b(signals)h(from)f(a)f
(signal-)581 9215 y(queue's)f(list)g(of)g(monitored)g(signals.)152
b(When)81 b(a)g(signal)h(is)f(remo)-5 b(v)g(ed)81 b(from)g(a)g(signal-)
581 9415 y(queue's)54 b(list)f(of)g(monitored)h(signals)g(an)-5
b(y)54 b(o)5 b(ccurances)53 b(of)g(the)f(signal)j(are)e(remo)-5
b(v)g(ed)54 b(from)581 9614 y(that)76 b(signal-queue's)j(p)5
b(ending)78 b(signals.)140 b(In)77 b(other)g(w)-5 b(ords,)83
b Fo(dequeue-signal!)141 b Fs(and)581 9813 y Fo(maybe-dequeue-signal!)
157 b Fs(will)82 b(only)g(return)g(signals)h(that)f(are)f(curren)-5
b(tly)82 b(on)g(the)581 10012 y(signal-queue's)57 b(list)f(of)f
(signals.)3362 10511 y(99)p eop end
%%Page: 100 108
TeXDict begin 100 107 bop 1478 1046 a Fl(8.3)269 b(Pro)7
b(cess)90 b(en)-7 b(vironmen)g(t)1478 1413 y Fs(These)55
b(are)h(in)f(structures)h Fo(posix-process-data)i Fs(and)e
Fo(posix)p Fs(.)1478 1885 y Ff(8.3.1)225 b(Pro)6 b(cess)75
b(iden)-6 b(ti\014cation)1511 2193 y Fj(\017)83 b Fo
(\(get-process-id\))j Fj(!)166 b Fr(pr)-8 b(o)g(c)g(ess-id)1511
2392 y Fj(\017)83 b Fo(\(get-parent-process-id\))k Fj(!)166
b Fr(pr)-8 b(o)g(c)g(ess-id)1478 2696 y Fs(These)74 b(return)g(the)g
(pro)5 b(cess)74 b(ids)h(of)f(the)f(curren)-5 b(t)75
b(pro)5 b(cess)74 b(and)h(its)f(paren)-5 b(t.)130 b(See)74
b(sec-)1478 2895 y(tion)55 b(8.1.1)h(for)f(op)5 b(erations)55
b(on)h(pro)5 b(cess)56 b(ids.)1511 3199 y Fj(\017)83
b Fo(\(get-user-id\))i Fj(!)166 b Fr(user-id)1511 3398
y Fj(\017)83 b Fo(\(get-effective-user-id\))k Fj(!)166
b Fr(user-id)1511 3597 y Fj(\017)83 b Fo(\(set-user-id!)i
Fr(user-id)17 b Fo(\))1511 3899 y Fj(\017)83 b Fo(\(get-group-id\))i
Fj(!)167 b Fr(gr)-8 b(oup-id)1511 4098 y Fj(\017)83 b
Fo(\(get-effective-group-id\))k Fj(!)166 b Fr(gr)-8 b(oup-id)1511
4297 y Fj(\017)83 b Fo(\(set-group-id!)i Fr(gr)-8 b(oup-id)17
b Fo(\))1478 4601 y Fs(Ev)-5 b(ery)71 b(pro)5 b(cess)73
b(has)g(b)5 b(oth)71 b(the)h(original)h(and)f(e\013ectiv)-5
b(e)71 b(user)i(id)f(and)g(group)h(id.)124 b(The)1478
4800 y(e\013ectiv)-5 b(e)54 b(v)-9 b(alues)55 b(ma)-5
b(y)56 b(b)5 b(e)55 b(set,)g(but)h(not)f(the)g(original)h(ones.)1511
5104 y Fj(\017)83 b Fo(\(get-groups\))i Fj(!)166 b Fr(gr)-8
b(oup-ids)1511 5303 y Fj(\017)83 b Fo(\(get-login-name\))j
Fj(!)166 b Fr(string)1478 5606 y Fo(Get-groups)62 b Fs(returns)g(a)e
(list)i(of)e(the)h(supplemen)-5 b(tary)62 b(groups)g(of)e(the)h(curren)
-5 b(t)61 b(pro)5 b(cess.)1478 5805 y Fo(Get-login-name)58
b Fs(returns)d(a)h(user)g(name)f(for)h(the)f(curren)-5
b(t)55 b(pro)5 b(cess.)1478 6278 y Ff(8.3.2)225 b(En)-6
b(vironmen)g(t)73 b(v)-12 b(ariables)1511 6586 y Fj(\017)83
b Fo(\(lookup-environment-variable)88 b Fr(string)15
b Fo(\))83 b Fj(!)h Fr(string)f(or)g Fo(#f)1511 6785
y Fj(\017)g Fo(\(environment-alist\))j Fj(!)d Fr(alist)1478
7089 y Fo(Lookup-environment-variable)63 b Fs(lo)5 b(oks)58
b(up)g(its)h(argumen)-5 b(t)59 b(in)f(the)g(en)-5 b(vironmen)g(t)59
b(list)1478 7288 y(and)49 b(returns)g(the)f(corresp)5
b(onding)49 b(v)-9 b(alue)48 b(or)h Fo(#f)g Fs(if)f(there)g(is)h(none.)
72 b Fo(Environment-alist)1478 7487 y Fs(returns)46 b(the)f(en)-5
b(tire)46 b(en)-5 b(vironmen)g(t)47 b(as)f(a)g(list)g(of)58
b Fo(\()p Fr(name-string)104 b Fo(.)174 b Fr(value-string)15
b Fo(\))48 b Fs(pairs.)1478 8044 y Fl(8.4)269 b(Users)90
b(and)g(groups)1478 8411 y Fr(User-id)17 b Fs(s)58 b(and)g
Fr(gr)-8 b(oup-id)17 b Fs(s)58 b(are)e(b)5 b(o)-5 b(xed)57
b(in)-5 b(tegers)58 b(represen)-5 b(ting)58 b(Unix)e(users)j(and)e
(groups.)1478 8610 y(The)e(pro)5 b(cedures)56 b(in)g(this)f(section)h
(are)f(in)h(structures)f Fo(posix-users)i Fs(and)f Fo(posix)p
Fs(.)1511 8914 y Fj(\017)83 b Fo(\(user-id?)102 b Fr(x)20
b Fo(\))83 b Fj(!)g Fr(b)-8 b(o)g(ole)g(an)1511 9113
y Fj(\017)83 b Fo(\(user-id=?)102 b Fr(user-id0)83 b(user-id1)23
b Fo(\))83 b Fj(!)g Fr(b)-8 b(o)g(ole)g(an)1511 9312
y Fj(\017)83 b Fo(\(user-id->integer)j Fr(user-id)17
b Fo(\))84 b Fj(!)f Fr(inte)-8 b(ger)1511 9511 y Fj(\017)83
b Fo(\(integer->user-id)j Fr(inte)-8 b(ger)18 b Fo(\))84
b Fj(!)f Fr(user-id)1511 9813 y Fj(\017)g Fo(\(group-id?)102
b Fr(x)20 b Fo(\))83 b Fj(!)g Fr(b)-8 b(o)g(ole)g(an)1511
10012 y Fj(\017)83 b Fo(\(group-id=?)102 b Fr(gr)-8 b(oup-id0)83
b(gr)-8 b(oup-id1)23 b Fo(\))82 b Fj(!)h Fr(b)-8 b(o)g(ole)g(an)4218
10511 y Fs(100)p eop end
%%Page: 101 109
TeXDict begin 101 108 bop 614 1046 a Fj(\017)83 b Fo
(\(group-id->integer)k Fr(gr)-8 b(oup-id)17 b Fo(\))83
b Fj(!)g Fr(inte)-8 b(ger)614 1245 y Fj(\017)83 b Fo
(\(integer->group-id)k Fr(inte)-8 b(ger)18 b Fo(\))84
b Fj(!)f Fr(gr)-8 b(oup-id)581 1556 y Fs(User-ids)56
b(and)g(group-ids)h(ha)-5 b(v)g(e)55 b(their)g(o)-5 b(wn)56
b(o)-5 b(wn)56 b(predicates)f(and)h(comparison,)g(b)5
b(o)-5 b(xing,)581 1755 y(and)56 b(un)-5 b(b)5 b(o)-5
b(xing)57 b(functions.)614 2065 y Fj(\017)83 b Fo(\(user-id->user-info)
k Fr(user-id)17 b Fo(\))84 b Fj(!)f Fr(user-info)614
2264 y Fj(\017)g Fo(\(name->user-info)j Fr(string)15
b Fo(\))84 b Fj(!)f Fr(user-info)581 2574 y Fs(These)56
b(return)f(the)g(user)h(info)f(for)h(a)f(user)h(iden)-5
b(ti\014ed)56 b(b)-5 b(y)56 b(user-id)g(or)g(name.)614
2885 y Fj(\017)83 b Fo(\(user-info?)102 b Fr(x)20 b Fo(\))84
b Fj(!)166 b Fr(b)-8 b(o)g(ole)g(an)614 3084 y Fj(\017)83
b Fo(\(user-info-name)j Fr(user-info)10 b Fo(\))85 b
Fj(!)166 b Fr(string)614 3283 y Fj(\017)83 b Fo(\(user-info-id)j
Fr(user-info)10 b Fo(\))84 b Fj(!)166 b Fr(user-id)614
3482 y Fj(\017)83 b Fo(\(user-info-group)j Fr(user-info)10
b Fo(\))85 b Fj(!)166 b Fr(gr)-8 b(oup-id)614 3682 y
Fj(\017)83 b Fo(\(user-info-home-directory)88 b Fr(user-info)10
b Fo(\))84 b Fj(!)166 b Fr(string)614 3881 y Fj(\017)83
b Fo(\(user-info-shell)j Fr(user-info)10 b Fo(\))85 b
Fj(!)166 b Fr(string)581 4191 y Fs(A)49 b Fo(user-info)i
Fs(con)-5 b(tains)50 b(information)g(ab)5 b(out)49 b(a)h(user.)72
b(Av)-9 b(ailable)49 b(are)g(the)h(user's)g(name,)581
4390 y(id,)56 b(group,)g(home)g(directory)-14 b(,)55
b(and)h(shell.)614 4700 y Fj(\017)83 b Fo(\(group-id->group-info)k
Fr(gr)-8 b(oup-id)17 b Fo(\))83 b Fj(!)g Fr(gr)-8 b(oup-info)614
4900 y Fj(\017)83 b Fo(\(name->group-info)j Fr(string)15
b Fo(\))84 b Fj(!)f Fr(gr)-8 b(oup-info)581 5210 y Fs(These)56
b(return)f(the)g(group)h(info)f(for)h(a)f(group)h(iden)-5
b(ti\014ed)56 b(b)-5 b(y)56 b(group-id)g(or)g(name.)614
5520 y Fj(\017)83 b Fo(\(group-info?)102 b Fr(x)20 b
Fo(\))84 b Fj(!)166 b Fr(b)-8 b(o)g(ole)g(an)614 5719
y Fj(\017)83 b Fo(\(group-info-name)j Fr(gr)-8 b(oup-info)10
b Fo(\))84 b Fj(!)166 b Fr(string)614 5919 y Fj(\017)83
b Fo(\(group-info-id)j Fr(gr)-8 b(oup-info)10 b Fo(\))84
b Fj(!)166 b Fr(gr)-8 b(oup-id)614 6118 y Fj(\017)83
b Fo(\(group-info-members)k Fr(gr)-8 b(oup-info)10 b
Fo(\))84 b Fj(!)166 b Fr(user-ids)581 6428 y Fs(A)64
b Fo(group-info)h Fs(con)-5 b(tains)65 b(information)f(ab)5
b(out)64 b(a)g(group.)100 b(Av)-9 b(ailable)63 b(are)h(the)f(group's)
581 6627 y(name,)56 b(id,)g(and)g(a)f(list)h(of)f(mem)-5
b(b)5 b(ers.)581 7196 y Fl(8.5)270 b(OS)90 b(and)g(mac)-7
b(hine)89 b(iden)-7 b(ti\014cation)581 7567 y Fs(These)67
b(pro)5 b(cedures)66 b(return)g(strings)i(that)d(are)h(supp)5
b(osed)68 b(to)e(iden)-5 b(tify)66 b(the)g(curren)-5
b(t)66 b(OS)581 7766 y(and)52 b(mac)-5 b(hine.)74 b(The)51
b(POSIX)g(standard)i(do)5 b(es)51 b(not)h(indicate)f(the)g(format)g(of)
h(the)f(strings.)581 7965 y(The)k(pro)5 b(cedures)56
b(are)f(in)h(structures)g Fo(posix-platform-names)j Fs(and)c
Fo(posix)p Fs(.)614 8276 y Fj(\017)83 b Fo(\(os-name\))i
Fj(!)e Fr(string)614 8475 y Fj(\017)g Fo(\(os-node-name\))j
Fj(!)d Fr(string)614 8674 y Fj(\017)g Fo(\(os-release-name\))j
Fj(!)d Fr(string)614 8873 y Fj(\017)g Fo(\(os-version-name\))j
Fj(!)d Fr(string)614 9073 y Fj(\017)g Fo(\(machine-name\))j
Fj(!)d Fr(string)581 9642 y Fl(8.6)270 b(Files)89 b(and)h(directories)
581 10012 y Fs(These)56 b(pro)5 b(cedures)55 b(are)h(in)f(structures)h
Fo(posix-files)h Fs(and)f Fo(posix)p Fs(.)3321 10511
y(101)p eop end
%%Page: 102 110
TeXDict begin 102 109 bop 1478 1046 a Ff(8.6.1)225 b(Directory)74
b(streams)1478 1408 y Fs(Directory)59 b(streams)h(are)g(lik)-5
b(e)60 b(input)g(p)5 b(orts,)61 b(with)f(eac)-5 b(h)60
b(read)g(op)5 b(eration)60 b(returning)g(the)1478 1607
y(next)54 b(name)i(in)g(the)f(directory)-14 b(.)1511
1996 y Fj(\017)83 b Fo(\(open-directory-stream)k Fr(name)12
b Fo(\))84 b Fj(!)f Fr(dir)-8 b(e)g(ctory)1511 2195 y
Fj(\017)83 b Fo(\(directory-stream?)103 b Fr(x)20 b Fo(\))83
b Fj(!)g Fr(b)-8 b(o)g(ole)g(an)1511 2394 y Fj(\017)83
b Fo(\(read-directory-stream)k Fr(dir)-8 b(e)g(ctory)15
b Fo(\))82 b Fj(!)h Fr(name)g(or)g Fo(#f)1511 2594 y
Fj(\017)g Fo(\(close-directory-stream)k Fr(dir)-8 b(e)g(ctory)15
b Fo(\))1478 2982 y(Open-directory-stream)43 b Fs(op)5
b(ens)40 b(a)g(new)g(directory)f(stream.)69 b Fo(Directory-stream?)j
Fs(is)1478 3181 y(a)45 b(predicate)h(that)f(recognizes)g(directory)g
(streams.)72 b Fo(Read-directory-stream)49 b Fs(returns)1478
3380 y(the)36 b(next)g(name)i(in)f(the)g(directory)f(or)h
Fo(#f)g Fs(if)g(all)g(names)h(ha)-5 b(v)g(e)37 b(b)5
b(een)37 b(read.)68 b Fo(Close-directory-stream)1478
3580 y Fs(closes)56 b(a)f(directory)g(stream.)1511 3968
y Fj(\017)83 b Fo(\(list-directory)j Fr(name)12 b Fo(\))84
b Fj(!)f Fr(list)g(of)g(strings)1478 4356 y Fs(This)56
b(is)g(the)f(ob)-5 b(vious)56 b(utilit)-5 b(y;)56 b(it)f(returns)g(a)h
(list)f(of)h(the)f(names)h(in)g(directory)g Fr(name)12
b Fs(.)1478 4980 y Ff(8.6.2)225 b(W)-19 b(orking)74 b(directory)1511
5312 y Fj(\017)83 b Fo(\(working-directory\))j Fj(!)d
Fr(string)1511 5511 y Fj(\017)g Fo(\(set-working-directory!)k
Fr(string)15 b Fo(\))1478 5899 y Fs(These)55 b(return)h(and)g(set)f
(the)g(w)-5 b(orking)55 b(directory)-14 b(.)1478 6523
y Ff(8.6.3)225 b(File)75 b(creation)f(and)g(remo)-6 b(v)-12
b(al)1511 6855 y Fj(\017)83 b Fo(\(open-file)i Fr(p)-8
b(ath)82 b(\014le-options)14 b Fo(\))84 b Fj(!)f Fr(p)-8
b(ort)1511 7054 y Fj(\017)83 b Fo(\(open-file)i Fr(p)-8
b(ath)82 b(\014le-options)j(\014le-mo)-8 b(de)12 b Fo(\))84
b Fj(!)f Fr(p)-8 b(ort)1478 7442 y Fo(Open-file)82 b
Fs(op)5 b(ens)81 b(a)g(p)5 b(ort)80 b(to)g(the)g(\014le)h(named)g(b)-5
b(y)81 b(string)j Fr(p)-8 b(ath)13 b Fs(.)148 b(The)81
b Fr(\014le-options)1478 7642 y Fs(argumen)-5 b(t)69
b(determines)g(v)-9 b(arious)69 b(asp)5 b(ects)69 b(of)g(the)f
(returned)h(p)5 b(ort.)113 b(The)69 b(optional)g Fr(\014le-)1478
7841 y(mo)-8 b(de)62 b Fs(argumen)-5 b(t)52 b(is)f(used)g(only)g(if)f
(the)h(\014le)f(to)h(b)5 b(e)50 b(op)5 b(ened)51 b(do)5
b(es)50 b(not)h(already)f(exist.)72 b(The)1478 8040 y(returned)62
b(p)5 b(ort)62 b(is)i(an)e(input)h(p)5 b(ort)62 b(if)76
b Fr(\014le-options)i Fs(includes)63 b Fo(read-only)p
Fs(;)68 b(otherwise)63 b(it)1478 8239 y(returns)71 b(an)f(output)g(p)5
b(ort.)118 b Fo(Dup-switching-mode)74 b Fs(can)c(b)5
b(e)70 b(used)h(to)f(op)5 b(en)70 b(an)h(input)1478 8439
y(p)5 b(ort)55 b(for)g(output)g(p)5 b(orts)55 b(op)5
b(ened)56 b(with)f(the)g Fo(read/write)i Fs(option.)1511
8827 y Fj(\017)83 b Fo(\(file-options)i Fr(\014le-option-name)98
b Fo(...\))56 b Fj(!)g Fr(\014le-options)1148 b Fs(syn)-5
b(tax)1511 9026 y Fj(\017)83 b Fo(\(file-options-on?)103
b Fr(\014le-options)84 b(\014le-options)14 b Fo(\))85
b Fj(!)e Fr(b)-8 b(o)g(ole)g(an)1478 9415 y Fs(The)59
b(syn)-5 b(tax)60 b Fo(file-options)i Fs(returns)e(a)f(\014le-option)i
(with)e(the)g(indicated)h(options)g(set.)1478 9614 y
Fo(File-options-on?)76 b Fs(returns)56 b(true)e(if)h(its)g(\014rst)g
(argumen)-5 b(t)56 b(includes)g(all)f(of)g(the)g(options)1478
9813 y(listed)76 b(in)f(the)h(second)g(argumen)-5 b(t.)135
b(The)75 b(follo)-5 b(wing)76 b(\014le)g(options)g(ma)-5
b(y)76 b(b)5 b(e)75 b(used)h(with)1478 10012 y Fo(open-file)p
Fs(.)4218 10511 y(102)p eop end
%%Page: 103 111
TeXDict begin 103 110 bop 981 1020 a Fo(create)1246 b
Fs(create)74 b(\014le)h(if)f(it)h(do)5 b(es)75 b(not)f(already)h
(exist;)84 b(a)75 b(\014le-)2749 1219 y(mo)5 b(de)56
b(argumen)-5 b(t)56 b(is)g(required)f(with)g(this)h(option)981
1418 y Fo(exclusive)985 b Fs(an)41 b(error)f(will)g(b)5
b(e)40 b(raised)h(if)f(this)g(option)h(and)f Fo(create)2749
1617 y Fs(are)55 b(b)5 b(oth)55 b(set)h(and)g(the)f(\014le)g(already)g
(exists)981 1817 y Fo(no-controlling-tty)202 b Fs(if)76
b Fr(p)-8 b(ath)74 b Fs(is)64 b(a)e(terminal)h(device)f(this)h(option)g
(causes)2749 2016 y(the)47 b(terminal)h(to)f(not)h(b)5
b(ecome)47 b(the)g(con)-5 b(trolling)48 b(ter-)2749 2215
y(minal)56 b(of)g(the)f(pro)5 b(cess)981 2414 y Fo(truncate)1072
b Fs(\014le)56 b(is)g(truncated)981 2614 y Fo(append)1246
b Fs(writes)56 b(are)f(app)5 b(ended)56 b(to)e(existing)i(con)-5
b(ten)g(ts)981 2813 y Fo(nonblocking)811 b Fs(read)56
b(and)g(write)e(op)5 b(erations)56 b(do)f(not)h(blo)5
b(c)-5 b(k)981 3012 y Fo(read-only)985 b Fs(p)5 b(ort)55
b(ma)-5 b(y)56 b(not)f(b)5 b(e)55 b(written)981 3211
y Fo(read-write)898 b Fs(\014le)56 b(descriptor)f(ma)-5
b(y)56 b(b)5 b(e)55 b(read)h(or)f(written)981 3411 y
Fo(write-only)898 b Fs(p)5 b(ort)55 b(ma)-5 b(y)56 b(not)f(b)5
b(e)55 b(read)581 3761 y(Only)h(one)f(of)g(the)g(last)h(three)e
(options)j(ma)-5 b(y)55 b(b)5 b(e)55 b(used.)830 3960
y(F)-14 b(or)56 b(example)581 4287 y Fo(\(open-file)89
b("some-file.txt")1540 4486 y(\(file-options)g(create)g(write-only\))
1540 4685 y(\(file-mode)g(read)f(owner-write\)\))581
5011 y Fs(returns)61 b(an)f(output)g(p)5 b(ort)59 b(that)g(writes)h(to)
g(a)g(newly-created)f(\014le)h(that)g(can)g(b)5 b(e)59
b(read)h(b)-5 b(y)581 5211 y(an)g(y)g(one)56 b(and)g(written)f(only)g
(b)-5 b(y)56 b(the)f(o)-5 b(wner.)74 b(Once)55 b(the)g(\014le)h
(exists,)581 5537 y Fo(\(open-file)89 b("some-file.txt")1540
5736 y(\(file-options)g(append)g(write-only\)\))581 6062
y Fs(will)56 b(op)5 b(en)55 b(an)h(output)f(p)5 b(ort)55
b(that)g(app)5 b(ends)56 b(to)f(the)g(\014le.)830 6262
y(The)46 b Fo(append)i Fs(and)e Fo(nonblocking)i Fs(options)f(and)g
(the)f(read/write)f(nature)h(of)g(the)g(p)5 b(ort)581
6461 y(can)48 b(b)5 b(e)47 b(read)h(using)k Fo(i/o-flags)p
Fs(.)72 b(The)48 b Fo(append)h Fs(and)f Fo(nonblocking)i
Fs(options)f(can)e(b)5 b(e)48 b(set)581 6660 y(using)59
b Fo(set-i/o-flags!)p Fs(.)830 6859 y(T)-14 b(o)54 b(k)-5
b(eep)54 b(p)5 b(ort)53 b(op)5 b(erations)55 b(from)f(blo)5
b(c)-5 b(king)54 b(the)f(Sc)-5 b(heme)55 b(48)f(pro)5
b(cess,)55 b(output)f(p)5 b(orts)581 7059 y(are)45 b(set)f(to)h(b)5
b(e)44 b(non)-5 b(blo)5 b(c)-5 b(king)46 b(at)f(the)f(time)h(of)f
(creation)h(\(input)g(p)5 b(orts)44 b(are)h(managed)h(using)581
7258 y Fo(select\(\))p Fs(\).)116 b(Y)-14 b(ou)70 b(can)f(use)g
Fo(set-i/o-flags!)118 b Fs(to)69 b(mak)-5 b(e)69 b(an)h(output)f(p)5
b(ort)68 b(blo)5 b(c)-5 b(king,)581 7457 y(for)68 b(example)f(just)h(b)
5 b(efore)67 b(a)h(fork,)i(but)e(care)f(should)i(b)5
b(e)68 b(exercised.)111 b(The)67 b(Sc)-5 b(heme)69 b(48)581
7656 y(run)-5 b(time)56 b(co)5 b(de)55 b(ma)-5 b(y)56
b(get)f(confused)h(if)f(an)g(I/O)h(op)5 b(eration)55
b(blo)5 b(c)-5 b(ks.)614 7949 y Fj(\017)83 b Fo
(\(set-file-creation-mask!)88 b Fr(\014le-mo)-8 b(de)12
b Fo(\))581 8242 y Fs(Sets)59 b(the)g(\014le)g(creation)f(mask)i(to)e
(b)5 b(e)59 b Fr(\014le-mo)-8 b(de)12 b Fs(.)86 b(Bits)58
b(set)h(in)g Fr(\014le-mo)-8 b(de)73 b Fs(are)59 b(cleared)f(in)581
8442 y(the)d(mo)5 b(des)56 b(of)f(an)-5 b(y)56 b(\014les)g(or)f
(directories)h(created)e(b)-5 b(y)56 b(the)f(curren)-5
b(t)55 b(pro)5 b(cess.)614 8735 y Fj(\017)83 b Fo(\(link)h
Fr(existing)g(new)18 b Fo(\))581 9028 y(Link)50 b Fs(mak)-5
b(es)50 b(path)f Fr(new)68 b Fs(b)5 b(e)49 b(a)h(new)f(link)g(to)g(the)
g(\014le)g(p)5 b(oin)-5 b(ted)50 b(to)e(b)-5 b(y)50 b(path)f
Fr(existing)15 b Fs(.)73 b(The)581 9227 y(t)-5 b(w)g(o)56
b(paths)g(m)-5 b(ust)56 b(b)5 b(e)55 b(in)h(the)f(same)h(\014le)f
(system.)614 9520 y Fj(\017)83 b Fo(\(make-directory)j
Fr(name)d(\014le-mo)-8 b(de)12 b Fo(\))614 9719 y Fj(\017)83
b Fo(\(make-fifo)i Fr(\014le-mo)-8 b(de)12 b Fo(\))581
10012 y Fs(These)56 b(t)-5 b(w)g(o)55 b(pro)5 b(cedures)56
b(mak)-5 b(e)56 b(new)f(directories)g(and)h(\014fo)g(\014les.)3321
10511 y(103)p eop end
%%Page: 104 112
TeXDict begin 104 111 bop 1511 1046 a Fj(\017)83 b Fo(\(unlink)h
Fr(p)-8 b(ath)13 b Fo(\))1511 1245 y Fj(\017)83 b Fo
(\(remove-directory)j Fr(p)-8 b(ath)13 b Fo(\))1511 1445
y Fj(\017)83 b Fo(\(rename)h Fr(old-p)-8 b(ath)83 b(new-p)-8
b(ath)13 b Fo(\))1478 1711 y(Unlink)75 b Fs(remo)-5 b(v)g(es)74
b(the)g(link)g(indicated)g(b)-5 b(y)76 b Fr(p)-8 b(ath)13
b Fs(.)128 b Fo(Remove-directory)77 b Fs(remo)-5 b(v)g(es)75
b(the)1478 1910 y(indicated)68 b(\(empt)-5 b(y\))67 b(directory)-14
b(.)112 b Fo(Rename)69 b Fs(mo)-5 b(v)g(es)69 b(the)e(\014le)i(p)5
b(oin)-5 b(ted)68 b(to)f(b)-5 b(y)71 b Fr(old-p)-8 b(ath)81
b Fs(to)1478 2109 y(the)69 b(lo)5 b(cation)70 b(p)5 b(oin)-5
b(ted)70 b(to)f(b)-5 b(y)73 b Fr(new-p)-8 b(ath)83 b
Fs(\(the)69 b(t)-5 b(w)g(o)71 b(paths)f(m)-5 b(ust)71
b(b)5 b(e)70 b(in)g(the)g(same)g(\014le)1478 2308 y(system\).)k(An)-5
b(y)55 b(other)g(links)h(to)f(the)g(\014le)g(remain)h(unc)-5
b(hanged.)1511 2575 y Fj(\017)83 b Fo(\(accessible?)102
b Fr(p)-8 b(ath)82 b(ac)-8 b(c)g(ess-mo)g(de)83 b(.)100
b(mor)-8 b(e-mo)g(des)14 b Fo(\))82 b Fj(!)h Fr(b)-8
b(o)g(ole)g(an)1511 2774 y Fj(\017)83 b Fo(\(access-mode)i
Fr(mo)-8 b(de-name)12 b Fo(\))56 b Fj(!)g Fr(ac)-8 b(c)g(ess-mo)g(de)
1858 b Fs(syn)-5 b(tax)1478 3040 y Fo(Accessible?)122
b Fs(returns)71 b(true)g(if)84 b Fr(p)-8 b(ath)83 b Fs(is)71
b(a)g(\014le)g(that)f(can)h(b)5 b(e)71 b(accessed)g(in)g(the)g(listed)
1478 3239 y(mo)5 b(de.)71 b(If)47 b(more)h(than)f(one)h(mo)5
b(de)47 b(is)h(sp)5 b(eci\014ed)48 b Fo(accessible?)73
b Fs(returns)48 b(true)f(if)g(all)h(of)f(the)1478 3438
y(sp)5 b(eci\014ed)68 b(mo)5 b(des)67 b(are)h(p)5 b(ermitted.)109
b(The)67 b Fr(mo)-8 b(de-name)12 b Fs(s)69 b(are:)97
b Fo(read)p Fs(,)72 b Fo(write)p Fs(,)f Fo(execute)p
Fs(,)1478 3638 y Fo(exists)p Fs(.)1478 4095 y Ff(8.6.4)225
b(File)75 b(information)1511 4402 y Fj(\017)83 b Fo(\(get-file-info)i
Fr(name)12 b Fo(\))85 b Fj(!)e Fr(\014le-info)1511 4601
y Fj(\017)g Fo(\(get-file/link-info)j Fr(name)12 b Fo(\))84
b Fj(!)f Fr(\014le-info)1511 4800 y Fj(\017)g Fo(\(get-port-info)i
Fr(fd-p)-8 b(ort)16 b Fo(\))83 b Fj(!)g Fr(\014le-info)1478
5067 y Fo(Get-file-info)54 b Fs(and)e Fo(get-file/link-info)j
Fs(b)5 b(oth)52 b(return)g(a)g(\014le)g(info)g(record)g(for)g(the)1478
5266 y(named)61 b(\014le.)88 b Fo(Get-file-info)63 b
Fs(follo)-5 b(ws)61 b(sym)-5 b(b)5 b(olic)61 b(links)g(while)f
Fo(get-file/link-info)1478 5465 y Fs(do)5 b(es)53 b(not.)73
b Fo(Get-port-info)55 b Fs(returns)e(a)g(\014le)h(info)f(record)f(for)h
(the)g(\014le)g(whic)-5 b(h)54 b Fr(p)-8 b(ort)68 b Fs(reads)1478
5664 y(from)54 b(or)h(writes)f(to.)73 b(An)54 b(error)h(is)g(raised)g
(if)67 b Fr(fd-p)-8 b(ort)69 b Fs(do)5 b(es)55 b(not)f(read)h(from)f
(or)h(write)e(to)h(a)1478 5864 y(\014le)h(descriptor.)1511
6130 y Fj(\017)83 b Fo(\(file-info?)102 b Fr(x)20 b Fo(\))83
b Fj(!)g Fr(b)-8 b(o)g(ole)g(an)1511 6329 y Fj(\017)83
b Fo(\(file-info-name)j Fr(\014le-info)10 b Fo(\))85
b Fj(!)e Fr(string)1478 6595 y Fo(File-info?)108 b Fs(is)67
b(a)g(predicate)f(for)g(\014le-info)h(records.)107 b
Fo(File-info-name)69 b Fs(is)e(the)f(name)1478 6794 y(whic)-5
b(h)37 b(w)-5 b(as)38 b(used)g(to)e(get)h Fo(file-info)p
Fs(,)42 b(either)36 b(as)i(passed)g(to)e Fo(get-file-info)k
Fs(or)d Fo(get-file/link-info)p Fs(,)1478 6994 y(or)55
b(used)h(to)f(op)5 b(en)56 b(the)f(p)5 b(ort)54 b(passed)j(to)e
Fo(get-port-info)p Fs(.)1511 7260 y Fj(\017)83 b Fo(\(file-info-type)j
Fr(\014le-info)10 b Fo(\))85 b Fj(!)e Fr(\014le-typ)-8
b(e)1511 7459 y Fj(\017)83 b Fo(\(file-type?)102 b Fr(x)20
b Fo(\))83 b Fj(!)g Fr(b)-8 b(o)g(ole)g(an)1511 7658
y Fj(\017)83 b Fo(\(file-type-name)j Fr(\014le-typ)-8
b(e)12 b Fo(\))84 b Fj(!)g Fr(symb)-8 b(ol)1511 7857
y Fj(\017)83 b Fo(\(file-type)i Fr(typ)-8 b(e)12 b Fo(\))55
b Fj(!)h Fr(\014le-typ)-8 b(e)2874 b Fs(syn)-5 b(tax)1478
8124 y Fo(File-info-type)47 b Fs(returns)f(the)f(t)-5
b(yp)5 b(e)45 b(of)g(the)g(\014le,)i(as)f(a)f(\014le-t)-5
b(yp)5 b(e)45 b(ob)9 b(ject)45 b(File)h(t)-5 b(yp)5 b(es)45
b(ma)-5 b(y)1478 8323 y(b)5 b(e)55 b(compared)h(using)i
Fo(eq?)p Fs(.)75 b(The)55 b(v)-9 b(alid)55 b(\014le)h(t)-5
b(yp)5 b(es)55 b(are:)3645 8641 y Fo(regular)3645 8840
y(directory)3645 9039 y(character-device)3645 9239 y(block-device)3645
9438 y(fifo)3645 9637 y(symbolic-link)3645 9836 y(socket)3645
10036 y(other)4218 10511 y Fs(104)p eop end
%%Page: 105 113
TeXDict begin 105 112 bop 581 1046 a Fo(Symbolic-link)58
b Fs(and)e Fo(socket)g Fs(are)f(not)g(required)h(b)-5
b(y)55 b(POSIX.)614 1347 y Fj(\017)83 b Fo(\(file-info-device)j
Fr(\014le-info)10 b Fo(\))86 b Fj(!)d Fr(inte)-8 b(ger)614
1546 y Fj(\017)83 b Fo(\(file-info-inode)j Fr(\014le-info)10
b Fo(\))85 b Fj(!)f Fr(inte)-8 b(ger)581 1846 y Fs(The)55
b(device)g(and)h(ino)5 b(de)55 b(n)-5 b(um)g(b)5 b(ers)58
b(uniquely)d(determine)g(a)h(\014le.)614 2147 y Fj(\017)83
b Fo(\(file-info-link-count)k Fr(\014le-info)10 b Fo(\))85
b Fj(!)e Fr(inte)-8 b(ger)614 2346 y Fj(\017)83 b Fo(\(file-info-size)j
Fr(\014le-info)10 b Fo(\))85 b Fj(!)e Fr(inte)-8 b(ger)581
2646 y Fs(These)56 b(return)g(the)f(n)-5 b(um)g(b)5 b(er)57
b(of)f(links)g(to)f(a)h(\014le)g(and)g(the)f(\014le)h(size)g(in)g(b)-5
b(ytes.)75 b(The)56 b(size)g(is)581 2846 y(only)g(meaningful)g(for)f
(regular)h(\014les.)614 3146 y Fj(\017)83 b Fo(\(file-info-owner)j
Fr(\014le-info)10 b Fo(\))85 b Fj(!)f Fr(user-id)614
3345 y Fj(\017)f Fo(\(file-info-group)j Fr(\014le-info)10
b Fo(\))85 b Fj(!)f Fr(gr)-8 b(oup-id)614 3545 y Fj(\017)83
b Fo(\(file-info-mode)j Fr(\014le-info)10 b Fo(\))85
b Fj(!)e Fr(\014le-mo)-8 b(de)581 3845 y Fs(These)56
b(return)f(the)g(o)-5 b(wner,)56 b(group,)g(and)g(access)g(mo)5
b(de)55 b(of)g(a)g(\014le.)614 4145 y Fj(\017)83 b Fo
(\(file-info-last-access)k Fr(\014le-info)10 b Fo(\))86
b Fj(!)d Fr(time)614 4345 y Fj(\017)g Fo(\(file-info-last-modification)
88 b Fr(\014le-info)10 b Fo(\))86 b Fj(!)d Fr(time)614
4544 y Fj(\017)g Fo(\(file-info-last-info-change)88 b
Fr(\014le-info)10 b Fo(\))85 b Fj(!)e Fr(time)581 4844
y Fs(These)47 b(return)f(the)g(time)g(the)g(\014le)h(w)-5
b(as)47 b(last)f(read,)j(mo)5 b(di\014ed,)49 b(or)d(had)h(its)f(status)
h(mo)5 b(di\014ed)581 5312 y Ff(8.6.5)225 b(File)76 b(mo)6
b(des)581 5619 y Fs(A)55 b(\014le)h(mo)5 b(de)55 b(is)h(a)f(b)5
b(o)-5 b(xed)56 b(in)-5 b(teger)55 b(represen)-5 b(ting)56
b(a)f(\014le)h(protection)f(mask.)614 5920 y Fj(\017)83
b Fo(\(file-mode)i(permission-name)h(...\))56 b Fj(!)f
Fr(\014le-mo)-8 b(de)1439 b Fs(syn)-5 b(tax)614 6119
y Fj(\017)83 b Fo(\(file-mode?)102 b Fr(x)20 b Fo(\))84
b Fj(!)f Fr(b)-8 b(o)g(ole)g(an)614 6318 y Fj(\017)83
b Fo(\(file-mode+)i Fr(\014le-mo)-8 b(de)84 b(.)25 b(.)g(.)g
Fo(\))103 b Fj(!)83 b Fr(\014le-mo)-8 b(de)614 6518 y
Fj(\017)83 b Fo(\(file-mode-)i Fr(\014le-mo)-8 b(de0)84
b(\014le-mo)-8 b(de1)23 b Fo(\))84 b Fj(!)f Fr(\014le-mo)-8
b(de)581 6818 y Fo(File-mode)55 b Fs(is)e(syn)-5 b(tax)53
b(for)g(creating)f(\014le)i(mo)5 b(des.)73 b(The)53 b(mo)5
b(de-names)54 b(are)f(listed)g(b)5 b(elo)-5 b(w.)581
7017 y Fo(File-mode?)129 b Fs(is)74 b(a)f(predicate)g(for)g(\014le)g
(mo)5 b(des.)128 b Fo(File-mode+)75 b Fs(returns)f(a)f(mo)5
b(de)73 b(that)581 7217 y(con)-5 b(tains)63 b(all)e(of)g(p)5
b(ermissions)64 b(of)d(its)h(argumen)-5 b(ts.)93 b Fo(File-mode-)63
b Fs(returns)f(a)g(mo)5 b(de)61 b(that)581 7416 y(has)56
b(all)g(of)f(the)g(p)5 b(ermissions)57 b(of)68 b Fr(\014le-mo)-8
b(de0)79 b Fs(that)55 b(are)g(not)g(in)h Fr(\014le-mo)-8
b(de1)23 b Fs(.)614 7716 y Fj(\017)83 b Fo(\(file-mode=?)102
b Fr(\014le-mo)-8 b(de0)84 b(\014le-mo)-8 b(de1)23 b
Fo(\))84 b Fj(!)f Fr(b)-8 b(o)g(ole)g(an)614 7916 y Fj(\017)83
b Fo(\(file-mode<=?)103 b Fr(\014le-mo)-8 b(de0)84 b(\014le-mo)-8
b(de1)23 b Fo(\))83 b Fj(!)g Fr(b)-8 b(o)g(ole)g(an)614
8115 y Fj(\017)83 b Fo(\(file-mode>=?)103 b Fr(\014le-mo)-8
b(de0)84 b(\014le-mo)-8 b(de1)23 b Fo(\))83 b Fj(!)g
Fr(b)-8 b(o)g(ole)g(an)581 8415 y Fo(File-mode=?)70 b
Fs(returns)40 b(true)f(if)g(the)g(t)-5 b(w)g(o)40 b(mo)5
b(des)39 b(are)h(exactly)d(the)i(same.)70 b Fo(File-mode<=?)581
8615 y Fs(returns)37 b(true)g(if)50 b Fr(\014le-mo)-8
b(de0)60 b Fs(has)38 b(a)f(subset)g(of)g(the)f(p)5 b(ermissions)39
b(of)50 b Fr(\014le-mo)-8 b(de1)23 b Fs(.)68 b Fo(File-mode>=?)581
8814 y Fs(is)56 b Fo(file-mode<=?)76 b Fs(with)55 b(the)g(argumen)-5
b(ts)57 b(rev)-5 b(ersed.)614 9114 y Fj(\017)83 b Fo
(\(file-mode->integer)k Fr(\014le-mo)-8 b(de)12 b Fo(\))84
b Fj(!)f Fr(inte)-8 b(ger)614 9313 y Fj(\017)83 b Fo
(\(integer->file-mode)k Fr(inte)-8 b(ger)18 b Fo(\))84
b Fj(!)f Fr(\014le-mo)-8 b(de)581 9614 y Fo(Integer->file-mode)89
b Fs(and)d Fo(file-mode->integer)j Fs(translate)d(\014le)g(mo)5
b(des)86 b(to)f(and)581 9813 y(from)d(the)f(classic)i(Unix)e(\014le)g
(mo)5 b(de)82 b(masks.)154 b(These)81 b(ma)-5 b(y)82
b(not)g(b)5 b(e)81 b(the)g(masks)i(used)581 10012 y(b)-5
b(y)56 b(the)f(underlying)h(OS.)3321 10511 y(105)p eop
end
%%Page: 106 114
TeXDict begin 106 113 bop 2147 1020 a Fs(P)-5 b(ermission)57
b(name)200 b(Bit)55 b(mask)2147 1219 y Fo(set-uid)817
b(#o4000)336 b Fs(set)55 b(user)h(id)f(when)h(executing)2147
1418 y Fo(set-gid)817 b(#o2000)336 b Fs(set)55 b(group)h(id)f(when)h
(executing)2147 1617 y Fo(owner-read)556 b(#o0400)336
b Fs(read)55 b(b)-5 b(y)56 b(o)-5 b(wner)2147 1817 y
Fo(owner-write)469 b(#o0200)336 b Fs(write)54 b(b)-5
b(y)56 b(o)-5 b(wner)2147 2016 y Fo(owner-exec)556 b(#o0100)336
b Fs(execute)54 b(\(or)h(searc)-5 b(h\))55 b(b)-5 b(y)56
b(o)-5 b(wner)2147 2215 y Fo(group-read)556 b(#o0040)336
b Fs(read)55 b(b)-5 b(y)56 b(group)2147 2414 y Fo(group-write)469
b(#o0020)336 b Fs(write)54 b(b)-5 b(y)56 b(group)2147
2614 y Fo(group-exec)556 b(#o0010)336 b Fs(execute)54
b(\(or)h(searc)-5 b(h\))55 b(b)-5 b(y)56 b(group)2147
2813 y Fo(other-read)556 b(#o0004)336 b Fs(read)55 b(b)-5
b(y)56 b(others)2147 3012 y Fo(other-write)469 b(#o0002)336
b Fs(write)54 b(b)-5 b(y)56 b(others)2147 3211 y Fo(other-exec)556
b(#o0001)336 b Fs(execute)54 b(\(or)h(searc)-5 b(h\))55
b(b)-5 b(y)56 b(others)2424 3542 y(Names)f(for)g(sets)h(of)f(p)5
b(ermissions)2424 3741 y Fo(owner)200 b(#o0700)g Fs(read,)56
b(write,)f(and)h(execute)e(b)-5 b(y)55 b(o)-5 b(wner)2424
3940 y Fo(group)200 b(#o0070)g Fs(read,)56 b(write,)f(and)h(execute)e
(b)-5 b(y)55 b(group)2424 4140 y Fo(other)200 b(#o0007)g
Fs(read,)56 b(write,)f(and)h(execute)e(b)-5 b(y)55 b(others)2424
4339 y Fo(read)287 b(#o0444)200 b Fs(read)56 b(b)-5 b(y)55
b(an)-5 b(y)g(one)2424 4538 y Fo(write)200 b(#o0222)g
Fs(write)55 b(b)-5 b(y)56 b(an)-5 b(y)g(one)2424 4737
y Fo(exec)287 b(#o0111)200 b Fs(execute)54 b(b)-5 b(y)56
b(an)-5 b(y)g(one)2424 4937 y Fo(all)374 b(#o0777)200
b Fs(an)-5 b(ything)56 b(b)-5 b(y)56 b(an)-5 b(y)g(one)1478
5420 y Fl(8.7)269 b(Time)1478 5784 y Fs(These)55 b(pro)5
b(cedures)56 b(are)f(in)h(structures)g Fo(posix-time)h
Fs(and)f Fo(posix)p Fs(.)1511 6042 y Fj(\017)83 b Fo(\(make-time)i
Fr(inte)-8 b(ger)18 b Fo(\))84 b Fj(!)f Fr(time)1511
6241 y Fj(\017)g Fo(\(current-time\))i Fj(!)f Fr(time)1511
6440 y Fj(\017)f Fo(\(time?)101 b Fr(x)20 b Fo(\))83
b Fj(!)g Fr(b)-8 b(o)g(ole)g(an)1511 6640 y Fj(\017)83
b Fo(\(time-seconds)i Fr(time)12 b Fo(\))84 b Fj(!)f
Fr(inte)-8 b(ger)1478 6897 y Fs(A)65 b Fo(time)h Fs(record)g(con)-5
b(tains)66 b(an)g(in)-5 b(teger)66 b(that)e(represen)-5
b(ts)67 b(time)e(as)h(the)g(n)-5 b(um)g(b)5 b(er)67 b(of)e(sec-)1478
7097 y(ond)j(since)h(the)f(Unix)g(ep)5 b(o)g(c)-5 b(h)68
b(\(00:00:00)g(GMT,)g(Jan)-5 b(uary)69 b(1,)j(1970\).)112
b Fo(Make-time)70 b Fs(and)1478 7296 y Fo(current-time)39
b Fs(return)e Fo(time)p Fs(s,)k(with)c Fo(make-time)p
Fs('s)i(using)f(its)f(argumen)-5 b(t)38 b(while)f Fo(current-time)p
Fs('s)1478 7495 y(has)g(the)g(curren)-5 b(t)37 b(time.)68
b Fo(Time?)g Fs(is)38 b(a)f(predicate)f(that)g(recognizes)h
Fo(time)p Fs(s)i(and)e Fo(time-seconds)1478 7694 y Fs(returns)56
b(the)f(n)-5 b(um)g(b)5 b(er)56 b(of)f(seconds)i Fr(time)68
b Fs(represen)-5 b(ts.)1511 7952 y Fj(\017)83 b Fo(\(time=?)101
b Fr(time)84 b(time)12 b Fo(\))83 b Fj(!)h Fr(b)-8 b(o)g(ole)g(an)1511
8151 y Fj(\017)83 b Fo(\(time<?)101 b Fr(time)84 b(time)12
b Fo(\))83 b Fj(!)h Fr(b)-8 b(o)g(ole)g(an)1511 8351
y Fj(\017)83 b Fo(\(time<=?)101 b Fr(time)84 b(time)12
b Fo(\))84 b Fj(!)f Fr(b)-8 b(o)g(ole)g(an)1511 8550
y Fj(\017)83 b Fo(\(time>?)101 b Fr(time)84 b(time)12
b Fo(\))83 b Fj(!)h Fr(b)-8 b(o)g(ole)g(an)1511 8749
y Fj(\017)83 b Fo(\(time>=?)101 b Fr(time)84 b(time)12
b Fo(\))84 b Fj(!)f Fr(b)-8 b(o)g(ole)g(an)1478 9007
y Fs(These)55 b(p)5 b(erform)56 b(v)-9 b(arious)55 b(comparison)i(op)5
b(erations)56 b(on)f(the)g Fo(time)p Fs(s.)1511 9265
y Fj(\017)83 b Fo(\(time->string)i Fr(time)12 b Fo(\))84
b Fj(!)f Fr(string)1478 9522 y Fo(Time->string)57 b Fs(returns)f(a)f
(string)h(represen)-5 b(tation)56 b(of)68 b Fr(time)g
Fs(in)56 b(the)f(follo)-5 b(wing)56 b(form.)1478 9813
y Fo("Wed)88 b(Jun)f(30)h(21:49:08)g(1993)1478 10012
y(")4218 10511 y Fs(106)p eop end
%%Page: 107 115
TeXDict begin 107 114 bop 581 1059 a Fl(8.8)270 b(I/O)581
1425 y Fs(These)56 b(pro)5 b(cedures)55 b(are)h(in)f(structures)h
Fo(posix-i/o)h Fs(and)f Fo(posix)p Fs(.)614 1728 y Fj(\017)83
b Fo(\(open-pipe\))i Fj(!)e Fr(input-p)-8 b(ort)84 b(+)f(output-p)-8
b(ort)581 2031 y Fo(Open-pipe)65 b Fs(creates)d(a)h(new)g(pip)5
b(e)62 b(and)i(returns)f(the)f(t)-5 b(w)g(o)64 b(ends)f(as)g(an)h
(input)f(p)5 b(ort)62 b(and)581 2230 y(an)56 b(output)f(p)5
b(ort.)830 2430 y(A)42 b Fr(\014le)49 b(descriptor)43
b Fs(p)5 b(ort)42 b(\(or)g Fr(fd-p)-8 b(ort)16 b Fs(\))41
b(is)i(a)g(p)5 b(ort)42 b(that)g(reads)h(to)f(or)g(writes)h(from)g(an)f
(OS)581 2630 y(\014le)d(descriptor.)69 b(Fd-p)5 b(orts)40
b(are)f(returned)f(b)-5 b(y)42 b Fo(open-input-file)p
Fs(,)j Fo(open-output-file)p Fs(,)581 2829 y Fo(open-file)p
Fs(,)57 b Fo(open-pipe)p Fs(,)g(and)f(other)f(pro)5 b(cedures.)614
3131 y Fj(\017)83 b Fo(\(fd-port?)102 b Fr(p)-8 b(ort)16
b Fo(\))82 b Fj(!)h Fr(b)-8 b(o)g(ole)g(an)614 3331 y
Fj(\017)83 b Fo(\(port->fd)i Fr(p)-8 b(ort)16 b Fo(\))82
b Fj(!)h Fr(inte)-8 b(ger)85 b(or)d Fo(#f)581 3633 y(Fd-port?)k
Fs(returns)59 b(true)g(if)f(its)h(argumen)-5 b(t)60 b(is)f(an)g(fd-p)5
b(ort.)85 b Fo(Port->fd)60 b Fs(returns)f(the)g(\014le)581
3833 y(descriptor)d(asso)5 b(ciated)55 b(with)h(or)f
Fo(#f)h Fs(if)68 b Fr(p)-8 b(ort)70 b Fs(is)56 b(not)g(an)f(fd-p)5
b(ort.)614 4135 y Fj(\017)83 b Fo(\(remap-file-descriptors)k
Fr(fd-sp)-8 b(e)g(c)83 b(.)25 b(.)g(.)g Fo(\))581 4438
y(Remap-file-descriptors)69 b Fs(reassigns)e(\014le)e(descriptors)h(to)
f(p)5 b(orts.)103 b(The)65 b Fr(fd-sp)-8 b(e)g(cs)78
b Fs(in-)581 4637 y(dicate)d(whic)-5 b(h)77 b(p)5 b(ort)75
b(is)h(to)f(b)5 b(e)75 b(mapp)5 b(ed)76 b(to)g(eac)-5
b(h)75 b(\014le)h(descriptor:)115 b(the)75 b(\014rst)h(gets)g(\014le)
581 4836 y(descriptor)69 b Fo(0)p Fs(,)k(the)68 b(second)h(gets)g
Fo(1)p Fs(,)j(and)e(so)f(forth.)114 b(A)68 b Fr(fd-sp)-8
b(e)g(c)78 b Fs(is)69 b(either)f(a)h(p)5 b(ort)68 b(that)581
5036 y(reads)55 b(from)g(or)g(writes)g(to)f(a)h(\014le)g(descriptor,)g
(or)g Fo(#f)p Fs(,)g(with)g Fo(#f)g Fs(indicating)g(that)f(the)g(cor-)
581 5235 y(resp)5 b(onding)70 b(\014le)g(descriptor)g(is)f(not)g(used.)
117 b(An)-5 b(y)69 b(op)5 b(en)69 b(p)5 b(orts)69 b(not)g(listed)h(are)
f(mark)-5 b(ed)581 5434 y(`close-on-exec'.)75 b(The)55
b(same)h(p)5 b(ort)55 b(ma)-5 b(y)55 b(b)5 b(e)55 b(mo)-5
b(v)g(ed)57 b(to)e(m)-5 b(ultiple)56 b(new)f(\014le)h(descriptors.)830
5635 y(F)-14 b(or)56 b(example,)581 5972 y Fo(\(remap-file-descriptors)
91 b(\(current-output-port\))2673 6171 y(#f)2673 6370
y(\(current-input-port\)\))581 6706 y Fs(mo)-5 b(v)g(es)52
b(the)e(curren)-5 b(t)50 b(output)g(p)5 b(ort)50 b(to)g(\014le)h
(descriptor)f Fo(0)h Fs(and)g(the)f(curren)-5 b(t)50
b(input)h(p)5 b(ort)50 b(to)581 6905 y(\014le)56 b(descriptor)f
Fo(2)p Fs(.)614 7208 y Fj(\017)83 b Fo(\(dup)h Fr(fd-p)-8
b(ort)16 b Fo(\))83 b Fj(!)g Fr(fd-p)-8 b(ort)614 7407
y Fj(\017)83 b Fo(\(dup-switching-mode)k Fr(fd-p)-8 b(ort)16
b Fo(\))82 b Fj(!)h Fr(fd-p)-8 b(ort)614 7606 y Fj(\017)83
b Fo(\(dup2)h Fr(fd-p)-8 b(ort)83 b(\014le-descriptor)18
b Fo(\))85 b Fj(!)e Fr(fd-p)-8 b(ort)581 7909 y Fs(These)66
b(c)-5 b(hange)66 b Fr(fd-p)-8 b(ort)16 b Fs('s)66 b(\014le)g
(descriptor)f(and)i(return)e(a)h(new)f(p)5 b(ort)65 b(that)g(uses)i
Fr(p)-8 b(orts)14 b Fs('s)581 8108 y(old)54 b(\014le)f(descriptor.)74
b Fo(Dup)54 b Fs(uses)g(the)f(lo)-5 b(w)g(est)54 b(un)-5
b(used)55 b(\014le)f(descriptor)g(and)g Fo(dup2)g Fs(uses)g(the)581
8308 y(one)44 b(pro)-5 b(vided.)70 b Fo(Dup-switching-mode)47
b Fs(is)d(the)f(same)h(as)g Fo(dup)g Fs(except)e(that)h(the)g(returned)
581 8507 y(p)5 b(ort)51 b(is)i(an)f(input)g(p)5 b(ort)51
b(if)h(the)f(argumen)-5 b(t)52 b(w)-5 b(as)53 b(an)f(output)f(p)5
b(ort)52 b(and)g(vice)f(v)-5 b(ersa.)73 b(If)51 b(an)-5
b(y)581 8706 y(existing)56 b(p)5 b(ort)54 b(uses)j(the)e(\014le)g
(descriptor)h(passed)h(to)e Fo(dup2)p Fs(,)h(that)e(p)5
b(ort)55 b(is)h(closed.)614 9009 y Fj(\017)83 b Fo(\(close-all-but)j
Fr(p)-8 b(ort)82 b(.)25 b(.)g(.)g Fo(\))581 9311 y(Close-all-but)56
b Fs(closes)e(all)g(\014le)f(descriptors)i(whose)f(asso)5
b(ciated)53 b(p)5 b(orts)54 b(are)f(not)g(passed)581
9511 y(to)i(it)g(as)h(argumen)-5 b(ts.)614 9813 y Fj(\017)83
b Fo(\(close-on-exec?)103 b Fr(p)-8 b(ort)16 b Fo(\))82
b Fj(!)h Fr(b)-8 b(o)g(ole)g(an)614 10012 y Fj(\017)83
b Fo(\(set-close-on-exec?!)k Fr(p)-8 b(ort)82 b(b)-8
b(o)g(ole)g(an)13 b Fo(\))3321 10511 y Fs(107)p eop end
%%Page: 108 116
TeXDict begin 108 115 bop 1478 1046 a Fo(Close-on-exec?)123
b Fs(returns)72 b(true)f(if)84 b Fo(port)71 b Fs(will)h(b)5
b(e)71 b(closed)g(when)h(a)f(new)g(program)h(is)1478
1245 y(exec'ed.)h Fo(Set-close-on-exec?!)k Fs(sets)56
b Fo(port)p Fs('s)g(close-on-exec)g(\015ag.)1511 1533
y Fj(\017)83 b Fo(\(i/o-flags)i Fr(p)-8 b(ort)16 b Fo(\))82
b Fj(!)h Fr(\014le-options)1511 1732 y Fj(\017)g Fo(\(set-i/o-flags!)j
Fr(p)-8 b(ort)82 b(\014le-options)14 b Fo(\))1478 2020
y Fs(These)45 b(t)-5 b(w)g(o)45 b(pro)5 b(cedures)45
b(read)g(and)g(write)f(v)-9 b(arious)45 b(options)g(for)g
Fo(port)p Fs(.)71 b(The)44 b(options)i(that)1478 2219
y(can)37 b(b)5 b(e)36 b(read)h(are)g Fo(append)p Fs(,)42
b Fo(nonblocking)p Fs(,)g Fo(read-only)p Fs(,)h Fo(write-only)p
Fs(,)f(and)c Fo(read/write)p Fs(.)1478 2419 y(Only)55
b(the)g Fo(append)i Fs(and)f Fo(nonblocking)h Fs(can)e(b)5
b(e)55 b(written.)1511 2706 y Fj(\017)83 b Fo(\(port-is-a-terminal?)103
b Fr(p)-8 b(ort)16 b Fo(\))83 b Fj(!)g Fr(b)-8 b(o)g(ole)g(an)1511
2906 y Fj(\017)83 b Fo(\(port-terminal-name)j Fr(p)-8
b(ort)16 b Fo(\))83 b Fj(!)g Fr(string)1478 3193 y Fo
(Port-is-a-terminal?)134 b Fs(returns)75 b(true)f(if)87
b Fr(p)-8 b(ort)89 b Fs(has)76 b(an)e(underlying)h(\014le)g(descriptor)
1478 3393 y(that)46 b(is)h(asso)5 b(ciated)47 b(with)g(a)g(terminal.)71
b(F)-14 b(or)47 b(suc)-5 b(h)48 b(p)5 b(orts)47 b Fo
(port-terminal-name)j Fs(returns)1478 3592 y(the)55 b(name)h(of)f(the)g
(terminal,)g(for)h(all)f(others)h(it)f(returns)g Fo(#f)p
Fs(.)1478 4138 y Fl(8.9)269 b(Regular)90 b(expressions)1478
4502 y Fs(The)c(pro)5 b(cedures)87 b(in)g(this)g(section)f(pro)-5
b(vide)87 b(access)g(to)f(POSIX)h(regular)f(expression)1478
4701 y(matc)-5 b(hing.)127 b(The)73 b(regular)g(expression)h(syn)-5
b(tax)72 b(and)i(seman)-5 b(tics)74 b(are)f(far)f(to)5
b(o)72 b(complex)1478 4901 y(to)61 b(b)5 b(e)62 b(describ)5
b(ed)62 b(here.)93 b(Because)61 b(the)h(C)f(in)-5 b(terface)62
b(uses)h(zero)e(b)-5 b(ytes)62 b(for)f(marking)i(the)1478
5100 y(ends)c(of)f(strings,)i(patterns)e(and)g(strings)h(that)f(con)-5
b(tain)59 b(zero)e(b)-5 b(ytes)59 b(will)f(not)g(w)-5
b(ork)58 b(cor-)1478 5299 y(rectly)-14 b(.)1727 5498
y(These)55 b(pro)5 b(cedures)56 b(are)f(in)h(structures)g
Fo(posix-regexps)h Fs(and)f Fo(posix)p Fs(.)1727 5698
y(An)62 b(abstract)g(data)g(t)-5 b(yp)5 b(e)61 b(for)h(creating)f
(POSIX)h(regular)h(expressions)g(is)g(describ)5 b(ed)1478
5897 y(in)56 b(section)f(5.20.)1511 6185 y Fj(\017)83
b Fo(\(make-regexp)i Fr(string)f(.)100 b(r)-8 b(e)g(gexp-options)14
b Fo(\))83 b Fj(!)g Fr(r)-8 b(e)g(gexp)1511 6384 y Fj(\017)83
b Fo(\(regexp-option)i Fr(option-name)12 b Fo(\))57 b
Fj(!)f Fr(r)-8 b(e)g(gexp-option)1512 b Fs(syn)-5 b(tax)1478
6672 y Fo(Make-regexp)54 b Fs(mak)-5 b(es)54 b(a)f(new)f(regular)h
(expression,)i(using)h Fr(string)68 b Fs(as)53 b(the)g(pattern.)72
b(The)1478 6871 y(p)5 b(ossible)56 b(option)g(names)g(are:)2787
7211 y Fo(extended)462 b Fs(use)56 b(the)f(extended)f(patterns)2787
7411 y Fo(ignore-case)201 b Fs(ignore)56 b(case)f(when)h(matc)-5
b(hing)2787 7610 y Fo(submatches)288 b Fs(rep)5 b(ort)55
b(submatc)-5 b(hes)2787 7809 y Fo(newline)549 b Fs(treat)54
b(newlines)i(sp)5 b(ecially)1727 8153 y(The)56 b(regular)g(expression)h
(is)f(not)g(compiled)g(un)-5 b(til)57 b(it)f(matc)-5
b(hed)56 b(against)g(a)g(string,)h(so)1478 8352 y(an)-5
b(y)55 b(errors)h(in)g(the)f(pattern)g(string)h(will)f(not)g(b)5
b(e)55 b(rep)5 b(orted)55 b(un)-5 b(til)56 b(that)f(p)5
b(oin)-5 b(t.)1511 8640 y Fj(\017)83 b Fo(\(regexp?)101
b Fr(x)20 b Fo(\))84 b Fj(!)f Fr(b)-8 b(o)g(ole)g(an)1478
8928 y Fs(This)56 b(is)g(a)f(predicate)g(for)g(regular)h(expressions.)
1511 9215 y Fj(\017)83 b Fo(\(regexp-match)i Fr(r)-8
b(e)g(gexp)83 b(string)h(start)f(submatches?)101 b(starts-line?)g
(ends-line?)20 b Fo(\))2009 9415 y Fj(!)87 b Fr(b)-8
b(o)g(ole)g(an)59 b(or)h(list)g(of)f(matches)1511 9614
y Fj(\017)83 b Fo(\(match?)101 b Fr(x)20 b Fo(\))83 b
Fj(!)h Fr(b)-8 b(o)g(ole)g(an)1511 9813 y Fj(\017)83
b Fo(\(match-start)i Fr(match)13 b Fo(\))83 b Fj(!)g
Fr(inte)-8 b(ger)1511 10012 y Fj(\017)83 b Fo(\(match-end)i
Fr(match)13 b Fo(\))83 b Fj(!)g Fr(inte)-8 b(ger)4218
10511 y Fs(108)p eop end
%%Page: 109 117
TeXDict begin 109 116 bop 581 1046 a Fo(Regexp-match)60
b Fs(matc)-5 b(hes)58 b(the)e(regular)i(expression)g(against)g(the)f(c)
-5 b(haracters)57 b(in)h Fr(string)15 b Fs(,)581 1245
y(starting)60 b(at)g(p)5 b(osition)61 b Fr(start)16 b
Fs(.)88 b(If)60 b(the)g(string)g(do)5 b(es)61 b(not)f(matc)-5
b(h)60 b(the)g(regular)h(expression,)581 1445 y Fo(regexp-match)50
b Fs(returns)e Fo(#f)p Fs(.)72 b(If)47 b(the)h(string)g(do)5
b(es)48 b(matc)-5 b(h,)49 b(then)f(a)g(list)g(of)f(matc)-5
b(h)48 b(records)581 1644 y(is)66 b(returned)f(if)77
b Fr(submatches?)124 b Fs(is)65 b(true,)j(or)d Fo(#t)g
Fs(is)g(returned)g(if)g(it)g(is)g(not.)103 b(Eac)-5 b(h)65
b(matc)-5 b(h)581 1843 y(record)66 b(con)-5 b(tains)67
b(the)f(index)g(of)g(the)g(c)-5 b(haracter)66 b(at)f(the)h(b)5
b(eginning)67 b(of)f(the)g(matc)-5 b(h)66 b(and)581 2042
y(one)h(more)g(than)f(the)h(index)f(of)h(the)f(c)-5 b(haracter)66
b(at)h(the)f(end.)108 b(The)67 b(\014rst)g(matc)-5 b(h)67
b(record)581 2242 y(giv)-5 b(es)50 b(the)e(lo)5 b(cation)49
b(of)g(the)g(substring)h(that)f(matc)-5 b(hed)50 b Fr(r)-8
b(e)g(gexp)10 b Fs(.)72 b(If)49 b(the)f(pattern)h(in)h
Fr(r)-8 b(e)g(gexp)581 2441 y Fs(con)j(tained)68 b(submatc)-5
b(hes,)71 b(then)c(the)g(results)g(of)g(these)g(are)g(returned)f(in)i
(order,)i(with)d(a)581 2640 y(matc)-5 b(h)71 b(records)h(rep)5
b(orting)70 b(submatc)-5 b(hes)72 b(that)f(succeeded)g(and)g
Fo(#f)g Fs(in)g(place)g(of)g(those)581 2839 y(that)55
b(did)h(not.)830 3039 y Fr(Starts-line?)132 b Fs(should)68
b(b)5 b(e)67 b(true)g(if)80 b Fr(string)i Fs(starts)67
b(at)g(the)g(b)5 b(eginning)68 b(of)f(a)g(line)g(and)581
3238 y Fr(ends-line?)96 b Fs(should)57 b(b)5 b(e)55 b(true)g(if)g(it)g
(ends)h(one.)581 3787 y Fl(8.10)270 b(C)90 b(to)g(Sc)-7
b(heme)89 b(corresp)7 b(ondence)581 4151 y Fs(The)65
b(follo)-5 b(wing)65 b(table)f(lists)h(the)f(Sc)-5 b(heme)65
b(pro)5 b(cedures)65 b(that)f(corresp)5 b(ond)64 b(to)g(particular)581
4350 y(C)f(pro)5 b(cedures.)97 b(Not)62 b(all)h(of)f(the)h(Sc)-5
b(heme)63 b(pro)5 b(cedures)63 b(listed)g(are)g(part)g(of)f(the)h
(POSIX)581 4549 y(in)-5 b(terface.)915 4888 y(C)55 b(pro)5
b(cedure)683 b(Sc)-5 b(heme)56 b(pro)5 b(cedure\(s\))915
5087 y Fo(access)1052 b(accessible?)915 5286 y(chdir)1139
b(set-working-directory!)915 5486 y(close)g(close-input-port,)90
b(close-output-port,)2663 5685 y(close-channel,)g(close-socket)915
5884 y(closedir)878 b(close-directory-stream)915 6083
y(creat)1139 b(open-file)915 6283 y(ctime)g(time->string)915
6482 y(dup)1313 b(dup,)88 b(dup-switching-mode)915 6681
y(dup2)1226 b(dup2)915 6880 y(exec[l|v][e|p|)p Fg(\017)p
Fo(])202 b(exec,)88 b(exec-with-environment,)2663 7080
y(exec-file,)h(exec-file-with-environment,)2663 7279
y(exec-with-alias)p 925 7478 53 7 v 978 7478 a(exit)1163
b(exit)915 7677 y(fcntl)1139 b(io-flags,)89 b(set-io-flags!,)2663
7877 y(close-on-exec,)h(set-close-on-exec!)915 8076 y(fork)1226
b(fork,)88 b(fork-and-forget)915 8275 y(fstat)1139 b(get-port-info)915
8474 y(getcwd)1052 b(working-directory)915 8674 y(getegid)965
b(get-effective-group-id)915 8873 y(getenv)1052 b
(lookup-environment-variable,)2663 9072 y(environment-alist)915
9271 y(geteuid)965 b(get-effective-user-id)915 9471 y(getgid)1052
b(get-group-id)915 9670 y(getgroups)791 b(get-groups)915
9869 y(getlogin)878 b(get-login-name)915 10068 y(getpid)1052
b(get-process-id)3321 10511 y Fs(109)p eop end
%%Page: 110 118
TeXDict begin 110 117 bop 1811 1046 a Fs(C)56 b(pro)5
b(cedure)683 b(Sc)-5 b(heme)56 b(pro)5 b(cedure\(s\))1811
1245 y Fo(getppid)966 b(get-parent-process-id)1811 1445
y(getuid)1053 b(get-user-id)1811 1644 y(isatty)g(port-is-a-terminal?)
1811 1843 y(link)1227 b(link)1811 2042 y(lstat)1140 b
(get-file/link-info)1811 2242 y(mkdir)g(make-directory)1811
2441 y(mkfifo)1053 b(make-fifo)1811 2640 y(open)1227
b(open-file)1811 2839 y(opendir)966 b(open-directory-stream)1811
3039 y(pipe)1227 b(open-pipe)1811 3238 y(read)g(read-char,)89
b(read-block)1811 3437 y(readdir)966 b(read-directory-stream)1811
3636 y(rename)1053 b(rename)1811 3836 y(rmdir)1140 b(remove-directory)
1811 4035 y(setgid)1053 b(set-group-id!)1811 4234 y(setuid)g
(set-user-id!)1811 4433 y(stat)1227 b(get-file-info)1811
4633 y(time)g(current-time)1811 4832 y(ttyname)966 b
(port-terminal-name)1811 5031 y(umask)1140 b(set-file-creation-mask!)
1811 5230 y(uname)g(os-name,)88 b(os-node-name,)3560
5430 y(os-release-name,)i(os-version-name,)3560 5629
y(machine-name)1811 5828 y(unlink)1053 b(unlink)1811
6027 y(waitpid)966 b(wait-for-child-process)1811 6227
y(write)1140 b(write-char,)89 b(write-block)4218 10511
y Fs(110)p eop end
%%Page: 111 119
TeXDict begin 111 118 bop 581 2291 a Fn(App)11 b(endix)129
b(A)581 3122 y Fq(ASCI)13 b(I)155 b(c)-13 b(haracter)154
b(enco)13 b(ding)581 3985 y Fs(\\ASCI)5 b(I")73 b(stands)i(for)f
(\\American)f(Standard)i(Co)5 b(de)73 b(for)h(Information)g(In)-5
b(terc)g(hange".)581 4184 y(The)42 b(ASCI)5 b(I)42 b(standard)h(is)f(a)
h(sev)-5 b(en-bit)42 b(co)5 b(de)42 b(published)i(b)-5
b(y)42 b(the)g(United)g(States)g(of)g(Amer-)581 4384
y(ica)63 b(Standards)h(Institute)e(\(USASI\))g(in)h(1968.)96
b(The)63 b(ASCI)5 b(I)62 b(enco)5 b(ding)63 b(forms)g(the)f(\014rst)581
4583 y(half)74 b(of)f(ISO-8859-1)i(\(Latin1\))e(whic)-5
b(h)74 b(in)h(turn)e(forms)i(the)e(\014rst)h(page)g(of)f(ISO)i(10646)
581 4782 y(\(Unico)5 b(de\).)830 4981 y(The)44 b(Sc)-5
b(heme)45 b(48)e(pro)5 b(cedures)45 b Fo(char->ascii)g
Fs(and)g Fo(ascii->char)h Fs(\(section)d(5.3\))h(giv)-5
b(e)581 5181 y(access)56 b(to)f(the)g(ASCI)5 b(I)54 b(enco)5
b(ding.)681 5540 y Fc(n)766 5557 y Fb(10)1095 5540 y
Fc(n)1180 5557 y Fb(16)2213 5540 y Fc(Unico)t(de)52 b(name)973
b(n)4226 5557 y Fb(10)4556 5540 y Fc(n)4641 5557 y Fb(16)5488
5540 y Fc(Unico)t(de)52 b(name)818 5723 y Fa(0)336 b(0)200
b Fc(NUL)377 b(n)l(ull)1735 b Fa(64)259 b(40)200 b(@)439
b Fc(commercial)51 b(at)818 5905 y Fa(1)336 b(1)200 b
Fc(SOH)384 b(start)50 b(of)h(heading)924 b Fa(65)259
b(41)200 b(A)439 b Fc(latin)50 b(capital)h(letter)g(a)818
6088 y Fa(2)336 b(2)200 b Fc(STX)392 b(start)50 b(of)h(text)1175
b Fa(66)259 b(42)200 b(B)439 b Fc(latin)50 b(capital)h(letter)g(b)818
6271 y Fa(3)336 b(3)200 b Fc(ETX)372 b(end)52 b(of)f(text)1253
b Fa(67)259 b(43)200 b(C)439 b Fc(latin)50 b(capital)h(letter)g(c)818
6453 y Fa(4)336 b(4)200 b Fc(EOT)368 b(end)52 b(of)f(transmission)681
b Fa(68)259 b(44)200 b(D)439 b Fc(latin)50 b(capital)h(letter)g(d)818
6636 y Fa(5)336 b(5)200 b Fc(ENQ)364 b(enquiry)1484 b
Fa(69)259 b(45)200 b(E)439 b Fc(latin)50 b(capital)h(letter)g(e)818
6819 y Fa(6)336 b(6)200 b Fc(A)l(CK)362 b(ac)l(kno)l(wledge)1155
b Fa(70)259 b(46)200 b(F)439 b Fc(latin)50 b(capital)h(letter)g(f)818
7001 y Fa(7)336 b(7)200 b Fc(BEL)393 b(b)t(ell)1744 b
Fa(71)259 b(47)200 b(G)439 b Fc(latin)50 b(capital)h(letter)g(g)818
7184 y Fa(8)336 b(8)200 b Fc(BS)509 b(bac)l(kspace)1321
b Fa(72)259 b(48)200 b(H)439 b Fc(latin)50 b(capital)h(letter)g(h)818
7366 y Fa(9)336 b(9)200 b Fc(HT)477 b(horizon)l(tal)50
b(tabulation)574 b Fa(73)259 b(49)200 b(I)439 b Fc(latin)50
b(capital)h(letter)g(i)739 7549 y Fa(10)337 b(A)200 b
Fc(LF)507 b(line)51 b(feed)1429 b Fa(74)259 b(4A)200
b(J)439 b Fc(latin)50 b(capital)h(letter)g(j)739 7732
y Fa(11)337 b(B)200 b Fc(VT)477 b(v)l(ertical)50 b(tabulation)749
b Fa(75)259 b(4B)200 b(K)439 b Fc(latin)50 b(capital)h(letter)g(k)739
7914 y Fa(12)337 b(C)200 b Fc(FF)503 b(form)51 b(feed)1356
b Fa(76)259 b(4C)200 b(L)439 b Fc(latin)50 b(capital)h(letter)g(l)739
8097 y Fa(13)337 b(D)200 b Fc(CR)479 b(carriage)51 b(return)988
b Fa(77)259 b(4D)200 b(M)439 b Fc(latin)50 b(capital)h(letter)g(m)739
8280 y Fa(14)337 b(E)200 b Fc(SO)499 b(shift)50 b(out)1419
b Fa(78)259 b(4E)200 b(N)439 b Fc(latin)50 b(capital)h(letter)g(n)739
8462 y Fa(15)337 b(F)200 b Fc(SI)563 b(shift)50 b(in)1513
b Fa(79)259 b(4F)200 b(O)439 b Fc(latin)50 b(capital)h(letter)g(o)739
8645 y Fa(16)259 b(10)200 b Fc(DLE)385 b(data)51 b(link)f(escap)t(e)904
b Fa(80)259 b(50)200 b(P)439 b Fc(latin)50 b(capital)h(letter)g(p)739
8828 y Fa(17)259 b(11)200 b Fc(DC1)398 b(device)52 b(con)l(trol)e(one)
776 b Fa(81)259 b(51)200 b(Q)439 b Fc(latin)50 b(capital)h(letter)g(q)
739 9010 y Fa(18)259 b(12)200 b Fc(DC2)398 b(device)52
b(con)l(trol)e(t)l(w)l(o)766 b Fa(82)259 b(52)200 b(R)439
b Fc(latin)50 b(capital)h(letter)g(r)739 9193 y Fa(19)259
b(13)200 b Fc(DC3)398 b(device)52 b(con)l(trol)e(three)665
b Fa(83)259 b(53)200 b(S)439 b Fc(latin)50 b(capital)h(letter)g(s)739
9376 y Fa(20)259 b(14)200 b Fc(DC4)398 b(device)52 b(con)l(trol)e(four)
737 b Fa(84)259 b(54)200 b(T)439 b Fc(latin)50 b(capital)h(letter)g(t)
739 9558 y Fa(21)259 b(15)200 b Fc(NAK)354 b(negativ)l(e)51
b(ac)l(kno)l(wledge)549 b Fa(85)259 b(55)200 b(U)439
b Fc(latin)50 b(capital)h(letter)g(u)739 9741 y Fa(22)259
b(16)200 b Fc(SYN)388 b(sync)l(hronous)51 b(idle)876
b Fa(86)259 b(56)200 b(V)439 b Fc(latin)50 b(capital)h(letter)g(v)739
9924 y Fa(23)259 b(17)200 b Fc(ETB)378 b(end)52 b(of)f(transmission)e
(blo)t(c)l(k)278 b Fa(87)259 b(57)200 b(W)439 b Fc(latin)50
b(capital)h(letter)g(w)3321 10511 y Fs(111)p eop end
%%Page: 112 120
TeXDict begin 112 119 bop 1577 1046 a Fc(n)1662 1063
y Fb(10)1992 1046 y Fc(n)2077 1063 y Fb(16)3109 1046
y Fc(Unico)t(de)53 b(name)973 b(n)5123 1063 y Fb(10)5453
1046 y Fc(n)5538 1063 y Fb(16)6384 1046 y Fc(Unico)t(de)53
b(name)1636 1229 y Fa(24)259 b(18)200 b Fc(CAN)361 b(cancel)1579
b Fa(88)258 b(58)200 b(X)439 b Fc(latin)51 b(capital)f(letter)h(x)1636
1411 y Fa(25)259 b(19)200 b Fc(EM)456 b(end)53 b(of)d(medium)986
b Fa(89)258 b(59)200 b(Y)439 b Fc(latin)51 b(capital)f(letter)h(y)1636
1594 y Fa(26)259 b(1A)200 b Fc(SUB)393 b(substitute)1320
b Fa(90)258 b(5A)200 b(Z)439 b Fc(latin)51 b(capital)f(letter)h(z)1636
1777 y Fa(27)259 b(1B)200 b Fc(ESC)401 b(escap)t(e)1557
b Fa(91)258 b(5B)200 b([)439 b Fc(left)51 b(square)h(brac)l(k)l(et)1636
1959 y Fa(28)259 b(1C)200 b Fc(FS)517 b(\014le)52 b(separator)1115
b Fa(92)258 b(5C)200 b(\\)439 b Fc(rev)l(erse)52 b(solidus)1636
2142 y Fa(29)259 b(1D)200 b Fc(GS)496 b(group)52 b(separator)927
b Fa(93)258 b(5D)200 b(])439 b Fc(righ)l(t)51 b(square)g(brac)l(k)l(et)
1636 2325 y Fa(30)259 b(1E)200 b Fc(RS)504 b(record)52
b(separator)893 b Fa(94)258 b(5E)200 b(^)439 b Fc(circum\015ex)53
b(accen)l(t)1636 2507 y Fa(31)259 b(1F)200 b Fc(US)502
b(unit)52 b(separator)1038 b Fa(95)258 b(5F)200 b(_)439
b Fc(lo)l(w)51 b(line)1636 2690 y Fa(32)259 b(20)200
b Fc(SP)-13 b(A)l(CE)198 b(space)1629 b Fa(96)258 b(60)200
b(`)439 b Fc(gra)l(v)l(e)51 b(accen)l(t)1636 2873 y Fa(33)259
b(21)200 b(!)624 b Fc(exclamation)51 b(mark)784 b Fa(97)258
b(61)200 b(a)439 b Fc(latin)51 b(small)f(letter)h(a)1636
3055 y Fa(34)259 b(22)200 b(")624 b Fc(quotation)51 b(mark)946
b Fa(98)258 b(62)200 b(b)439 b Fc(latin)51 b(small)f(letter)h(b)1636
3238 y Fa(35)259 b(23)200 b(#)624 b Fc(n)l(um)l(b)t(er)53
b(sign)1162 b Fa(99)258 b(63)200 b(c)439 b Fc(latin)51
b(small)f(letter)h(c)1636 3421 y Fa(36)259 b(24)200 b($)624
b Fc(dollar)51 b(sign)1207 b Fa(100)259 b(64)200 b(d)439
b Fc(latin)51 b(small)f(letter)h(d)1636 3603 y Fa(37)259
b(25)200 b(\045)624 b Fc(p)t(ercen)l(t)53 b(sign)1096
b Fa(101)259 b(65)200 b(e)439 b Fc(latin)51 b(small)f(letter)h(e)1636
3786 y Fa(38)259 b(26)200 b(&)624 b Fc(amp)t(ersand)1179
b Fa(102)259 b(66)200 b(f)439 b Fc(latin)51 b(small)f(letter)h(f)1636
3968 y Fa(39)259 b(27)200 b(')624 b Fc(ap)t(ostrophe)1170
b Fa(103)259 b(67)200 b(g)439 b Fc(latin)51 b(small)f(letter)h(g)1636
4151 y Fa(40)259 b(28)200 b(\()624 b Fc(left)51 b(paren)l(thesis)891
b Fa(104)259 b(68)200 b(h)439 b Fc(latin)51 b(small)f(letter)h(h)1636
4334 y Fa(41)259 b(29)200 b(\))624 b Fc(righ)l(t)51 b(paren)l(thesis)
788 b Fa(105)259 b(69)200 b(i)439 b Fc(latin)51 b(small)f(letter)h(i)
1636 4516 y Fa(42)259 b(2A)200 b(*)624 b Fc(asterisk)1398
b Fa(106)259 b(6A)200 b(j)439 b Fc(latin)51 b(small)f(letter)h(j)1636
4699 y Fa(43)259 b(2B)200 b(+)624 b Fc(plus)51 b(sign)1318
b Fa(107)259 b(6B)200 b(k)439 b Fc(latin)51 b(small)f(letter)h(k)1636
4882 y Fa(44)259 b(2C)200 b(,)624 b Fc(comma)1431 b Fa(108)259
b(6C)200 b(l)439 b Fc(latin)51 b(small)f(letter)h(l)1636
5064 y Fa(45)259 b(2D)200 b(-)624 b Fc(h)l(yphen-min)l(us)975
b Fa(109)259 b(6D)200 b(m)439 b Fc(latin)51 b(small)f(letter)h(m)1636
5247 y Fa(46)259 b(2E)200 b(.)624 b Fc(full)51 b(stop)1357
b Fa(110)259 b(6E)200 b(n)439 b Fc(latin)51 b(small)f(letter)h(n)1636
5430 y Fa(47)259 b(2F)200 b(/)624 b Fc(solidus)1454 b
Fa(111)259 b(6F)200 b(o)439 b Fc(latin)51 b(small)f(letter)h(o)1636
5612 y Fa(48)259 b(30)200 b(0)624 b Fc(digit)51 b(zero)1277
b Fa(112)259 b(70)200 b(p)439 b Fc(latin)51 b(small)f(letter)h(p)1636
5795 y Fa(49)259 b(31)200 b(1)624 b Fc(digit)51 b(one)1320
b Fa(113)259 b(71)200 b(q)439 b Fc(latin)51 b(small)f(letter)h(q)1636
5978 y Fa(50)259 b(32)200 b(2)624 b Fc(digit)51 b(t)l(w)l(o)1310
b Fa(114)259 b(72)200 b(r)439 b Fc(latin)51 b(small)f(letter)h(r)1636
6160 y Fa(51)259 b(33)200 b(3)624 b Fc(digit)51 b(three)1209
b Fa(115)259 b(73)200 b(s)439 b Fc(latin)51 b(small)f(letter)h(s)1636
6343 y Fa(52)259 b(34)200 b(4)624 b Fc(digit)51 b(four)1281
b Fa(116)259 b(74)200 b(t)439 b Fc(latin)51 b(small)f(letter)h(t)1636
6526 y Fa(53)259 b(35)200 b(5)624 b Fc(digit)51 b(\014v)l(e)1320
b Fa(117)259 b(75)200 b(u)439 b Fc(latin)51 b(small)f(letter)h(u)1636
6708 y Fa(54)259 b(36)200 b(6)624 b Fc(digit)51 b(six)1365
b Fa(118)259 b(76)200 b(v)439 b Fc(latin)51 b(small)f(letter)h(v)1636
6891 y Fa(55)259 b(37)200 b(7)624 b Fc(digit)51 b(sev)l(en)1191
b Fa(119)259 b(77)200 b(w)439 b Fc(latin)51 b(small)f(letter)h(w)1636
7073 y Fa(56)259 b(38)200 b(8)624 b Fc(digit)51 b(eigh)l(t)1221
b Fa(120)259 b(78)200 b(x)439 b Fc(latin)51 b(small)f(letter)h(x)1636
7256 y Fa(57)259 b(39)200 b(9)624 b Fc(digit)51 b(nine)1269
b Fa(121)259 b(79)200 b(y)439 b Fc(latin)51 b(small)f(letter)h(y)1636
7439 y Fa(58)259 b(3A)200 b(:)624 b Fc(colon)1559 b Fa(122)259
b(7A)200 b(z)439 b Fc(latin)51 b(small)f(letter)h(z)1636
7621 y Fa(59)259 b(3B)200 b(;)624 b Fc(semicolon)1259
b Fa(123)259 b(7B)200 b({)439 b Fc(left)51 b(curly)h(brac)l(k)l(et)1636
7804 y Fa(60)259 b(3C)200 b(<)624 b Fc(less-than)51 b(sign)1001
b Fa(124)259 b(7C)200 b(|)439 b Fc(v)l(ertical)51 b(line)1636
7987 y Fa(61)259 b(3D)200 b(=)624 b Fc(equals)51 b(sign)1177
b Fa(125)259 b(7D)200 b(})439 b Fc(righ)l(t)51 b(curly)h(brac)l(k)l(et)
1636 8169 y Fa(62)259 b(3E)200 b(>)624 b Fc(greater-than)52
b(sign)763 b Fa(126)259 b(7E)200 b(~)439 b Fc(tilde)1636
8352 y Fa(63)259 b(3F)200 b(?)624 b Fc(question)51 b(mark)952
b Fa(127)259 b(7F)200 b Fc(DEL)f(delete)4218 10511 y
Fs(112)p eop end
%%Page: 113 121
TeXDict begin 113 120 bop 581 2380 a Fq(Bibliograph)-13
b(y)664 3272 y Fs([1])83 b(Information)68 b(tec)-5 b(hnology)68
b({)f(P)-5 b(ortable)68 b(Op)5 b(erating)67 b(System)h(In)-5
b(terface)67 b(\(POSIX\).)922 3471 y(ISO/IEC)56 b(9945-1)g(ANSI/IEEE)e
(Std)i(1003.1.)74 b(2nd)56 b(Ed.,)g(1996.)664 3826 y([2])83
b(William)f(Clinger)g(and)g(Jonathan)g(Rees.)152 b(Macros)82
b(that)e(w)-5 b(ork.)152 b Fr(Principles)84 b(of)922
4025 y(Pr)-8 b(o)g(gr)g(amming)58 b(L)-8 b(anguages)p
Fs(,)57 b(Jan)-5 b(uary)56 b(1991.)664 4381 y([3])83
b(William)64 b(Clinger)g(and)f(Jonathan)h(Rees)g(\(editors\).)96
b(Revised)4943 4320 y Fm(4)5081 4381 y Fs(rep)5 b(ort)63
b(on)g(the)g(al-)922 4580 y(gorithmic)78 b(language)g(Sc)-5
b(heme.)140 b Fr(LISP)80 b(Pointers)d Fs(IV\(3\):1{55,)82
b(July-Septem)-5 b(b)5 b(er)922 4779 y(1991.)664 5134
y([4])83 b(P)-5 b(a)g(v)g(el)56 b(Curtis)f(and)h(James)f(Rauen.)74
b(A)54 b(mo)5 b(dule)55 b(system)g(for)g(Sc)-5 b(heme.)73
b Fr(A)l(CM)59 b(Con-)922 5334 y(fer)-8 b(enc)g(e)61
b(on)e(Lisp)h(and)f(F)-13 b(unctional)62 b(Pr)-8 b(o)g(gr)g(amming,)53
b Fs(pages)j(13{19,)g(1990.)664 5689 y([5])83 b(Ric)-5
b(hard)58 b(Kelsey)f(and)g(Jonathan)h(Rees.)78 b(A)56
b(T)-14 b(ractable)56 b(Sc)-5 b(heme)58 b(Implemen)-5
b(tation.)922 5888 y Fr(Lisp)60 b(and)f(Symb)-8 b(olic)60
b(Computation)55 b Fs(7:315{335)h(1994.)664 6244 y([6])83
b(Ric)-5 b(hard)48 b(Kelsey)-14 b(,)49 b(Will)d(Clinger,)j(Jonathan)e
(Rees)g(\(editors\).)58 b(Revised)5461 6183 y Fm(5)5582
6244 y Fs(Rep)5 b(ort)46 b(on)922 6443 y(the)58 b(Algorithmic)h
(Language)f(Sc)-5 b(heme.)84 b Fr(Higher-Or)-8 b(der)63
b(and)f(Symb)-8 b(olic)63 b(Computa-)922 6642 y(tion,)g
Fs(V)-14 b(ol.)62 b(11,)g(No.)f(1,)i(Septem)-5 b(b)5
b(er,)63 b(1998.)92 b(and)61 b Fr(A)l(CM)k(SIGPLAN)h(Notic)-8
b(es)p Fs(,)64 b(V)-14 b(ol.)922 6841 y(33,)56 b(No.)f(9,)h(Octob)5
b(er,)54 b(1998.)664 7197 y([7])83 b(Da)-5 b(vid)67 b(MacQueen.)108
b(Mo)5 b(dules)68 b(for)e(Standard)i(ML.)107 b Fr(A)l(CM)70
b(Confer)-8 b(enc)g(e)71 b(on)f(Lisp)922 7396 y(and)60
b(F)-13 b(unctional)61 b(Pr)-8 b(o)g(gr)g(amming,)54
b Fs(1984.)664 7751 y([8])83 b(Jonathan)58 b(Rees)f(and)g(Bruce)f
(Donald.)78 b(Program)57 b(mobile)g(rob)5 b(ots)57 b(in)g(Sc)-5
b(heme.)78 b Fr(In-)922 7950 y(ternational)61 b(Confer)-8
b(enc)g(e)61 b(on)e(R)-8 b(ob)g(otics)59 b(and)h(A)l(utomation,)55
b Fs(IEEE,)h(1992.)664 8306 y([9])83 b(John)66 b(H.)e(Repp)-5
b(y)-14 b(.)101 b(Concurren)-5 b(t)64 b(Programming)i(in)f(ML.)100
b(Cam)-5 b(bridge)66 b(Univ)-5 b(ersit)g(y)922 8505 y(Press,)57
b(1999.)581 8860 y([10])83 b(Mark)63 b(A.)g(Sheldon)h(and)f(Da)-5
b(vid)64 b(K.)f(Gi\013ord.)97 b(Static)62 b(dep)5 b(enden)-5
b(t)63 b(t)-5 b(yp)5 b(es)63 b(for)g(\014rst-)922 9059
y(class)79 b(mo)5 b(dules.)139 b Fr(A)l(CM)80 b(Confer)-8
b(enc)g(e)80 b(on)g(Lisp)f(and)h(F)-13 b(unctional)81
b(Pr)-8 b(o)g(gr)g(amming,)922 9259 y Fs(pages)56 b(20{29,)g(1990.)581
9614 y([11])83 b(Olin)97 b(Shiv)-5 b(ers,)107 b(Brian)96
b(D.)g(Carlstrom,)106 b(Martin)97 b(Gasbic)-5 b(hler)97
b(and)f(Mik)-5 b(e)96 b(Sp)5 b(er-)922 9813 y(b)g(er.)214
b(Scsh)103 b(Reference)e(Man)-5 b(ual,)116 b(scsh)103
b(release)g(0.6.6.)214 b(Av)-9 b(ailable)101 b(at)h(URL)922
10012 y Fo(http://www.scsh.net/)p Fs(.)3321 10511 y(113)p
eop end
%%Page: 114 122
TeXDict begin 114 121 bop 1478 1046 a Fs([12])83 b(Olin)68
b(Shiv)-5 b(ers.)108 b(A)67 b(univ)-5 b(ersal)68 b(scripting)f(framew)
-5 b(ork,)70 b(or)d(Lam)-5 b(b)5 b(da:)97 b(the)66 b(ultimate)1819
1245 y(\\little)j(language".)115 b Fr(Concurr)-8 b(ency)73
b(and)g(Par)-8 b(al)8 b(lelism,)76 b(Pr)-8 b(o)g(gr)g(amming,)73
b(Network-)1819 1445 y(ing,)60 b(and)f(Se)-8 b(curity,)56
b Fs(pages)g(254{265,)g(Springer)g(1996.)73 b(Jo)-5 b(xan)56
b(Ja\013ar)g(and)f(Roland)1819 1644 y(H.)g(C.)h(Y)-14
b(ap,)55 b(editors.)4218 10511 y(114)p eop end
%%Page: 115 123
TeXDict begin 115 122 bop 581 1997 a Fq(Index)581 2827
y Fo(accessible?)p Fs(,)58 b(104)581 3027 y Fo(after-time-rv)p
Fs(,)g(80)581 3227 y Fo(always-rv)p Fs(,)f(77)581 3426
y Fo(any-match?)p Fs(,)g(65)581 3626 y Fo(any?)p Fs(,)f(30)581
3825 y Fo(any)p Fs(,)g(31)581 4025 y Fo(arithmetic-shift)p
Fs(,)i(32)581 4224 y Fo(array->vector)p Fs(,)g(35)581
4424 y Fo(array-dimensions)p Fs(,)g(35)581 4624 y Fo(array-ref)p
Fs(,)f(35)581 4823 y Fo(array?)p Fs(,)g(34)581 5023 y
Fo(array)p Fs(,)f(34)581 5222 y Fo(ascii->char)p Fs(,)i(32)581
5422 y Fo(ascii-limit)p Fs(,)g(32)581 5622 y Fo(ascii-ranges)p
Fs(,)g(63)581 5821 y Fo(ascii-range)p Fs(,)g(63)581 6021
y Fo(ascii-whitespaces)p Fs(,)h(32)581 6220 y Fo(at-real-time-rv)p
Fs(,)f(80)581 6420 y Fo(atom?)p Fs(,)e(30)581 6619 y
Fo(bit-count)p Fs(,)h(32)581 6819 y Fo(bitwise-and)p
Fs(,)h(32)581 7019 y Fo(bitwise-ior)p Fs(,)g(32)581 7218
y Fo(bitwise-not)p Fs(,)g(32)581 7418 y Fo(bitwise-xor)p
Fs(,)g(32)581 7617 y Fo(byte-vector-length)p Fs(,)h(33)581
7817 y Fo(byte-vector-ref)p Fs(,)f(33)581 8017 y Fo(byte-vector?)p
Fs(,)g(33)581 8216 y Fo(byte-vector)p Fs(,)g(33)581 8416
y Fo(call-atomically)p Fs(,)g(73)581 8615 y Fo(call-ensuring-atomicity)
p Fs(,)i(71)581 8815 y Fo(call-imported-binding)p Fs(,)f(85)581
9015 y Fo(cell-ref)p Fs(,)e(33)581 9214 y Fo(cell?)p
Fs(,)f(33)581 9414 y Fo(channel?)p Fs(,)h(78)581 9613
y Fo(char->ascii)p Fs(,)h(32)581 9813 y Fo(choose)p Fs(,)f(77)581
10012 y Fo(close-all-but)p Fs(,)h(107)3736 2827 y Fo
(close-directory-stream)p Fs(,)h(102)3736 3027 y Fo(close-on-exec?)p
Fs(,)f(107)3736 3227 y Fo(close-socket)p Fs(,)g(45)3736
3426 y Fo(concatenate-symbol)p Fs(,)h(31)3736 3626 y
Fo(condvar-has-value?)p Fs(,)g(74)3736 3825 y Fo(condvar-value)p
Fs(,)f(74)3736 4025 y Fo(condvar?)p Fs(,)f(74)3736 4224
y Fo(copy-array)p Fs(,)g(34)3736 4424 y Fo(current-column)p
Fs(,)h(43)3736 4624 y Fo(current-proposal)p Fs(,)g(73)3736
4823 y Fo(current-row)p Fs(,)f(43)3736 5023 y Fo(current-thread)p
Fs(,)h(69)3736 5222 y Fo(current-time)p Fs(,)g(106)3736
5422 y Fo(debug-message)p Fs(,)g(70)3736 5622 y Fo
(default-hash-function)p Fs(,)h(42)3736 5821 y Fo
(define-exported-binding)p Fs(,)g(83)3736 6021 y Fo
(define-imported-binding)p Fs(,)g(84)3736 6220 y Fo
(define-record-discloser)p Fs(,)g(36,)d(37)3736 6420
y Fo(define-record-resumer)p Fs(,)j(37,)d(91)3736 6619
y Fo(delete)p Fs(,)g(31)3736 6819 y Fo(delq)p Fs(,)g(31)3736
7019 y Fo(directory-stream?)p Fs(,)i(102)3736 7218 y
Fo(dup-switching-mode)p Fs(,)h(107)3736 7418 y Fo(dup2)p
Fs(,)d(107)3736 7617 y Fo(dup)p Fs(,)g(107)3736 7817
y Fo(enum-set->list)p Fs(,)i(40)3736 8017 y Fo(enum-set-intersection)p
Fs(,)h(40)3736 8216 y Fo(enum-set-member?)p Fs(,)f(40)3736
8416 y Fo(enum-set-negation)p Fs(,)g(40)3736 8615 y Fo(enum-set-union)p
Fs(,)g(40)3736 8815 y Fo(enum-set=?)p Fs(,)f(40)3736
9015 y Fo(environment-alist)p Fs(,)h(100)3736 9214 y
Fo(every?)p Fs(,)e(30)3736 9414 y Fo(exact-match?)p Fs(,)i(65)3736
9613 y Fo(exec-file-with-environment)p Fs(,)i(96)3736
9813 y Fo(exec-file)p Fs(,)d(96)3736 10012 y Fo(exec-with-alias)p
Fs(,)h(96)3321 10511 y(115)p eop end
%%Page: 116 124
TeXDict begin 116 123 bop 1478 1046 a Fo(exec-with-environment)p
Fs(,)59 b(96)1478 1245 y Fo(exec)p Fs(,)d(96)1478 1445
y Fo(exit)p Fs(,)g(96)1478 1644 y Fo(fd-port?)p Fs(,)h(107)1478
1843 y Fo(file-info-device)p Fs(,)h(105)1478 2042 y Fo(file-info-group)
p Fs(,)g(105)1478 2242 y Fo(file-info-inode)p Fs(,)g(105)1478
2441 y Fo(file-info-last-access)p Fs(,)h(105)1478 2640
y Fo(file-info-last-info-change)p Fs(,)45 b(105)1478
2839 y Fo(file-info-last-modification)p Fs(,)g(105)1478
3039 y Fo(file-info-link-count)p Fs(,)59 b(105)1478 3238
y Fo(file-info-mode)p Fs(,)f(105)1478 3437 y Fo(file-info-name)p
Fs(,)g(104)1478 3636 y Fo(file-info-owner)p Fs(,)g(105)1478
3836 y Fo(file-info-size)p Fs(,)g(105)1478 4035 y Fo(file-info-type)p
Fs(,)g(104)1478 4234 y Fo(file-info?)p Fs(,)f(104)1478
4433 y Fo(file-mode+)p Fs(,)g(105)1478 4633 y Fo(file-mode->integer)p
Fs(,)h(105)1478 4832 y Fo(file-mode-)p Fs(,)f(105)1478
5031 y Fo(file-mode<=?)p Fs(,)g(105)1478 5230 y Fo(file-mode=?)p
Fs(,)g(105)1478 5430 y Fo(file-mode>=?)p Fs(,)g(105)1478
5629 y Fo(file-mode?)p Fs(,)g(105)1478 5828 y Fo(file-options-on?)p
Fs(,)h(102)1478 6027 y Fo(file-type-name)p Fs(,)g(104)1478
6227 y Fo(file-type?)p Fs(,)f(104)1478 6426 y Fo(filter-map)p
Fs(,)g(31)1478 6625 y Fo(filter)p Fs(,)f(31)1478 6824
y Fo(first)p Fs(,)g(31)1478 7024 y Fo(fluid)p Fs(,)g(43)1478
7223 y Fo(fork-and-forget)p Fs(,)i(96)1478 7422 y Fo(fork)p
Fs(,)e(96)1478 7621 y Fo(fresh-line)p Fs(,)h(43)1478
7821 y Fo(get-effective-group-id)p Fs(,)i(100)1478 8020
y Fo(get-effective-user-id)p Fs(,)g(100)1478 8219 y Fo(get-file-info)p
Fs(,)f(104)1478 8418 y Fo(get-file/link-info)p Fs(,)g(104)1478
8618 y Fo(get-group-id)p Fs(,)f(100)1478 8817 y Fo(get-groups)p
Fs(,)g(100)1478 9016 y Fo(get-host-name)p Fs(,)h(45)1478
9215 y Fo(get-login-name)p Fs(,)g(100)1478 9415 y Fo
(get-parent-process-id)p Fs(,)h(100)1478 9614 y Fo(get-port-info)p
Fs(,)f(104)1478 9813 y Fo(get-process-id)p Fs(,)g(100)1478
10012 y Fo(get-user-id)p Fs(,)f(100)4633 1046 y Fo
(group-id->group-info)p Fs(,)i(101)4633 1245 y Fo(group-id->integer)p
Fs(,)f(101)4633 1445 y Fo(group-id=?)p Fs(,)f(100)4633
1644 y Fo(group-id?)p Fs(,)g(100)4633 1843 y Fo(group-info-id)p
Fs(,)g(101)4633 2042 y Fo(group-info-members)p Fs(,)h(101)4633
2242 y Fo(group-info-name)p Fs(,)g(101)4633 2441 y Fo(group-info?)p
Fs(,)f(101)4633 2640 y Fo(guard)p Fs(,)f(77)4633 2839
y Fo(have-system?)p Fs(,)h(44)4633 3039 y Fo(i/o-flags)p
Fs(,)g(108)4633 3238 y Fo(identity)p Fs(,)f(30)4633 3437
y Fo(ignore-case)p Fs(,)h(64)4633 3636 y Fo(import-definition)p
Fs(,)h(84)4633 3836 y Fo(import-dynamic-externals)p Fs(,)h(86)4633
4035 y Fo(import-lambda-definition)p Fs(,)g(85)4633 4234
y Fo(integer->file-mode)p Fs(,)f(105)4633 4433 y Fo(integer->group-id)p
Fs(,)g(101)4633 4633 y Fo(integer->process-id)p Fs(,)g(96)4633
4832 y Fo(integer->signal)p Fs(,)g(97)4633 5031 y Fo(integer->user-id)p
Fs(,)g(100)4633 5230 y Fo(intersection)p Fs(,)f(63)4633
5430 y Fo(jar-take-rv)p Fs(,)g(79)4633 5629 y Fo(jar-take)p
Fs(,)f(79)4633 5828 y Fo(jar?)p Fs(,)g(79)4633 6027 y
Fo(let-fluids)p Fs(,)h(43)4633 6227 y Fo(let-fluid)p
Fs(,)g(43)4633 6426 y Fo(limit-output)p Fs(,)g(42)4633
6625 y Fo(link)p Fs(,)f(103)4633 6824 y Fo(list->queue)p
Fs(,)h(34)4633 7024 y Fo(list-delete-neighbor-dups)p
Fs(,)45 b(56,)40 b(60)4633 7223 y Fo(list-directory)p
Fs(,)58 b(102)4633 7422 y Fo(list-merge-sort)p Fs(,)g(58)4633
7621 y Fo(list-merge)p Fs(,)f(55,)e(58)4633 7821 y Fo(list-sorted?)p
Fs(,)i(55,)f(58)4633 8020 y Fo(list-sort)p Fs(,)h(56)4633
8219 y Fo(list-stable-sort)p Fs(,)h(56)4633 8418 y Fo
(load-dynamic-externals)p Fs(,)h(86)4633 8618 y Fo(lock?)p
Fs(,)d(75)4633 8817 y Fo(lookup-environment-variable)p
Fs(,)45 b(100)4633 9016 y Fo(lookup-exported-binding)p
Fs(,)59 b(84)4633 9215 y Fo(lookup-imported-binding)p
Fs(,)g(84)4633 9415 y Fo(machine-name)p Fs(,)e(101)4633
9614 y Fo(make-array)p Fs(,)g(34)4633 9813 y Fo(make-byte-vector)p
Fs(,)h(33)4633 10012 y Fo(make-cell)p Fs(,)f(33)4218
10511 y(116)p eop end
%%Page: 117 125
TeXDict begin 117 124 bop 581 1046 a Fo(make-channel)p
Fs(,)58 b(78)581 1245 y Fo(make-condvar)p Fs(,)g(74)581
1445 y Fo(make-directory)p Fs(,)g(103)581 1644 y Fo(make-fifo)p
Fs(,)f(103)581 1843 y Fo(make-fluid)p Fs(,)g(43)581 2042
y Fo(make-integer-table)p Fs(,)i(41)581 2242 y Fo(make-jar)p
Fs(,)e(79)581 2441 y Fo(make-lock)p Fs(,)g(75)581 2640
y Fo(make-placeholder)p Fs(,)h(75,)e(78)581 2839 y Fo(make-proposal)p
Fs(,)i(73)581 3039 y Fo(make-queue)p Fs(,)f(34)581 3238
y Fo(make-record-type)p Fs(,)h(37)581 3437 y Fo(make-record)p
Fs(,)g(37)581 3636 y Fo(make-regexp)p Fs(,)g(108)581
3836 y Fo(make-shared-array)p Fs(,)h(35)581 4035 y Fo
(make-signal-queue)p Fs(,)g(99)581 4234 y Fo(make-sparse-vector)p
Fs(,)g(33)581 4433 y Fo(make-string-input-port)p Fs(,)g(42)581
4633 y Fo(make-string-output-port)p Fs(,)h(42)581 4832
y Fo(make-string-table)p Fs(,)f(41)581 5031 y Fo(make-symbol-table)p
Fs(,)g(41)581 5230 y Fo(make-table-maker)p Fs(,)f(41)581
5430 y Fo(make-table)p Fs(,)f(41)581 5629 y Fo(make-time)p
Fs(,)g(106)581 5828 y Fo(make-tracking-input-port)p Fs(,)j(43)581
6027 y Fo(make-tracking-output-port)p Fs(,)g(43)581 6227
y Fo(match-end)p Fs(,)d(65,)f(108)581 6426 y Fo(match-start)p
Fs(,)i(65,)d(108)581 6625 y Fo(match-submatches)p Fs(,)j(65)581
6824 y Fo(match?)p Fs(,)f(108)581 7024 y Fo(match)p Fs(,)f(65)581
7223 y Fo(maybe-commit-and-block-on-queue)p Fs(,)1245
7422 y(76)581 7621 y Fo(maybe-commit-and-block)p Fs(,)j(76)581
7821 y Fo(maybe-commit-and-make-ready)p Fs(,)46 b(76)581
8020 y Fo(maybe-commit-and-wait-for-condvar)p Fs(,)1245
8219 y(74)581 8418 y Fo(maybe-commit)p Fs(,)58 b(73)581
8618 y Fo(maybe-obtain-lock)p Fs(,)h(75)581 8817 y Fo(memq?)p
Fs(,)d(30)581 9016 y Fo(n=)p Fs(,)g(30)581 9215 y Fo(name->group-info)p
Fs(,)i(101)581 9415 y Fo(name->signal)p Fs(,)g(97)581
9614 y Fo(name->user-info)p Fs(,)g(101)581 9813 y Fo(negate)p
Fs(,)f(63)581 10012 y Fo(neq?)p Fs(,)f(30)3736 1046 y
Fo(never-rv)p Fs(,)h(77)3736 1245 y Fo(no-op)p Fs(,)f(30)3736
1445 y Fo(no-submatches)p Fs(,)i(65)3736 1644 y Fo(null-list?)p
Fs(,)f(30)3736 1843 y Fo(obtain-lock)p Fs(,)g(75)3736
2042 y Fo(one-of)p Fs(,)f(64)3736 2242 y Fo(open-directory-stream)p
Fs(,)j(102)3736 2441 y Fo(open-file)p Fs(,)e(102)3736
2640 y Fo(open-pipe)p Fs(,)g(107)3736 2839 y Fo(open-socket)p
Fs(,)g(44,)f(45)3736 3039 y Fo(os-name)p Fs(,)h(101)3736
3238 y Fo(os-node-name)p Fs(,)h(101)3736 3437 y Fo(os-release-name)p
Fs(,)g(101)3736 3636 y Fo(os-version-name)p Fs(,)g(101)3736
3836 y Fo(partition-list)p Fs(,)g(31)3736 4035 y Fo
(placeholder-value-rv)p Fs(,)h(79)3736 4234 y Fo(placeholder-value)p
Fs(,)f(75,)e(79)3736 4433 y Fo(placeholder?)p Fs(,)i(75,)d(78)3736
4633 y Fo(port->fd)p Fs(,)i(107)3736 4832 y Fo(port-is-a-terminal?)p
Fs(,)i(108)3736 5031 y Fo(port-terminal-name)p Fs(,)g(108)3736
5230 y Fo(pretty-print)p Fs(,)f(32)3736 5430 y Fo(process-id->integer)p
Fs(,)h(96)3736 5629 y Fo(process-id-exit-status)p Fs(,)g(96)3736
5828 y Fo(process-id-terminating-signal)p Fs(,)4400 6027
y(96)3736 6227 y Fo(process-id=?)p Fs(,)f(96)3736 6426
y Fo(process-id?)p Fs(,)f(96)3736 6625 y Fo
(provisional-byte-vector-ref)p Fs(,)45 b(72)3736 6824
y Fo(provisional-car)p Fs(,)58 b(71)3736 7024 y Fo(provisional-cdr)p
Fs(,)g(71)3736 7223 y Fo(provisional-cell-ref)p Fs(,)h(71)3736
7422 y Fo(provisional-string-ref)p Fs(,)g(72)3736 7621
y Fo(provisional-vector-ref)p Fs(,)g(71)3736 7821 y Fo(p)p
Fs(,)d(32)3736 8020 y Fo(queue->list)p Fs(,)h(34)3736
8219 y Fo(queue-empty?)p Fs(,)h(34)3736 8418 y Fo(queue-length)p
Fs(,)g(34)3736 8618 y Fo(queue?)p Fs(,)e(34)3736 8817
y Fo(ranges)p Fs(,)g(63)3736 9016 y Fo(range)p Fs(,)g(63)3736
9215 y Fo(read-directory-stream)p Fs(,)j(102)3736 9415
y Fo(receive-rv)p Fs(,)e(78)3736 9614 y Fo(receive)p
Fs(,)g(78)3736 9813 y Fo(record-accessor)p Fs(,)h(37)3736
10012 y Fo(record-constructor)p Fs(,)h(37)3321 10511
y(117)p eop end
%%Page: 118 126
TeXDict begin 118 125 bop 1478 1046 a Fo(record-length)p
Fs(,)58 b(37)1478 1245 y Fo(record-modifier)p Fs(,)g(37)1478
1445 y Fo(record-predicate)p Fs(,)g(37)1478 1644 y Fo(record-ref)p
Fs(,)f(37)1478 1843 y Fo(record-type-field-names)p Fs(,)i(37)1478
2042 y Fo(record-type-name)p Fs(,)f(37)1478 2242 y Fo(record-type?)p
Fs(,)f(37)1478 2441 y Fo(record-type)p Fs(,)g(37)1478
2640 y Fo(record?)p Fs(,)f(37)1478 2839 y Fo(record)p
Fs(,)g(37)1478 3039 y Fo(regexp-match)p Fs(,)h(108)1478
3238 y Fo(regexp?)p Fs(,)f(108)1478 3437 y Fo(release-lock)p
Fs(,)h(75)1478 3636 y Fo(relinquish-timeslice)p Fs(,)i(69)1478
3836 y Fo(reload-dynamic-externals)p Fs(,)g(86)1478 4035
y Fo(remap-file-descriptors)p Fs(,)g(107)1478 4234 y
Fo(remove-directory)p Fs(,)f(104)1478 4433 y Fo(remove-duplicates)p
Fs(,)g(31)1478 4633 y Fo(rename)p Fs(,)e(104)1478 4832
y Fo(repeat)p Fs(,)g(64)1478 5031 y Fo(select)p Fs(,)g(77)1478
5230 y Fo(send-rv)p Fs(,)g(78)1478 5430 y Fo(send)p Fs(,)g(78)1478
5629 y Fo(sequence)p Fs(,)h(64)1478 5828 y Fo(set)p Fs(,)f(63)1478
6027 y Fo(shared-binding-is-import?)p Fs(,)k(84)1478
6227 y Fo(shared-binding-name)p Fs(,)f(84)1478 6426 y
Fo(shared-binding-ref)p Fs(,)f(84)1478 6625 y Fo(shared-binding?)p
Fs(,)g(84)1478 6824 y Fo(signal-name)p Fs(,)f(97)1478
7024 y Fo(signal-os-number)p Fs(,)h(97)1478 7223 y Fo(signal-process)p
Fs(,)g(99)1478 7422 y Fo(signal-queue-monitored-signals)p
Fs(,)2142 7621 y(99)1478 7821 y Fo(signal-queue?)p Fs(,)g(99)1478
8020 y Fo(signal=?)p Fs(,)f(97)1478 8219 y Fo(signal?)p
Fs(,)f(97)1478 8418 y Fo(sleep)p Fs(,)g(69)1478 8618
y Fo(socket-accept)p Fs(,)i(45)1478 8817 y Fo(socket-client)p
Fs(,)g(45)1478 9016 y Fo(socket-port-number)p Fs(,)g(45)1478
9215 y Fo(sparse-vector->list)p Fs(,)h(33)1478 9415 y
Fo(sparse-vector-ref)p Fs(,)f(33)1478 9614 y Fo(spawn)p
Fs(,)e(69)1478 9813 y Fo(string-end)p Fs(,)h(64)1478
10012 y Fo(string-hash)p Fs(,)g(42)4633 1046 y Fo
(string-output-port-output)p Fs(,)i(42)4633 1245 y Fo(string-start)p
Fs(,)e(64)4633 1445 y Fo(submatch)p Fs(,)f(65)4633 1644
y Fo(subtract)p Fs(,)g(63)4633 1843 y Fo(sync)p Fs(,)g(77)4633
2042 y Fo(system)p Fs(,)g(44)4633 2242 y Fo(table-ref)p
Fs(,)h(42)4633 2441 y Fo(table-walk)p Fs(,)g(42)4633
2640 y Fo(table?)p Fs(,)f(42)4633 2839 y Fo(terminate-current-thread)p
Fs(,)j(69)4633 3039 y Fo(text)p Fs(,)d(64)4633 3238 y
Fo(thread-name)p Fs(,)h(70)4633 3437 y Fo(thread-queue-empty?)p
Fs(,)h(76)4633 3636 y Fo(thread-uid)p Fs(,)f(70)4633
3836 y Fo(thread?)p Fs(,)f(69)4633 4035 y Fo(time->string)p
Fs(,)h(106)4633 4234 y Fo(time-seconds)p Fs(,)g(106)4633
4433 y Fo(time<=?)p Fs(,)f(106)4633 4633 y Fo(time<?)p
Fs(,)g(106)4633 4832 y Fo(time=?)p Fs(,)g(106)4633 5031
y Fo(time>=?)p Fs(,)g(106)4633 5230 y Fo(time>?)p Fs(,)g(106)4633
5430 y Fo(time?)p Fs(,)g(106)4633 5629 y Fo(undefine-exported-binding)p
Fs(,)j(84)4633 5828 y Fo(undefine-imported-binding)p
Fs(,)g(84)4633 6027 y Fo(union)p Fs(,)d(63)4633 6227
y Fo(unlink)p Fs(,)g(104)4633 6426 y Fo(unload-dynamic-externals)p
Fs(,)j(86)4633 6625 y Fo(use-case)p Fs(,)d(64)4633 6824
y Fo(user-id->integer)p Fs(,)i(100)4633 7024 y Fo(user-id->user-info)p
Fs(,)g(101)4633 7223 y Fo(user-id=?)p Fs(,)f(100)4633
7422 y Fo(user-id?)p Fs(,)f(100)4633 7621 y Fo(user-info-group)p
Fs(,)i(101)4633 7821 y Fo(user-info-home-directory)p
Fs(,)h(101)4633 8020 y Fo(user-info-id)p Fs(,)e(101)4633
8219 y Fo(user-info-name)p Fs(,)h(101)4633 8418 y Fo(user-info-shell)p
Fs(,)g(101)4633 8618 y Fo(user-info?)p Fs(,)f(101)4633
8817 y Fo(vector-binary-search3)p Fs(,)i(61)4633 9016
y Fo(vector-binary-search)p Fs(,)g(61)4633 9215 y Fo
(vector-delete-neighbor-dups)p Fs(,)45 b(56,)5297 9415
y(60)4633 9614 y Fo(vector-heap-sort)p Fs(,)58 b(59)4633
9813 y Fo(vector-insert-sort)p Fs(,)g(59)4633 10012 y
Fo(vector-merge-sort)p Fs(,)g(59)4218 10511 y(118)p eop
end
%%Page: 119 127
TeXDict begin 119 126 bop 581 1046 a Fo(vector-merge)p
Fs(,)58 b(56,)d(59)581 1245 y Fo(vector-sorted?)p Fs(,)j(56,)e(58)581
1445 y Fo(vector-sort)p Fs(,)i(56)581 1644 y Fo(vector-stable-sort)p
Fs(,)h(56)581 1843 y Fo(wait-for-child-process)p Fs(,)g(96)581
2042 y Fo(with-nack)p Fs(,)e(77)581 2242 y Fo(working-directory)p
Fs(,)i(102)581 2441 y Fo(wrap)p Fs(,)d(77)581 2640 y
Fo(compound-interface)p Fs(,)j(22)581 2839 y Fo(define-interface)p
Fs(,)f(21)581 3039 y Fo(define-structure)p Fs(,)g(19)581
3238 y Fo(modify)p Fs(,)f(20)581 3437 y Fo(prefix)p Fs(,)g(20)581
3636 y Fo(subset)p Fs(,)g(20)581 3995 y Fo(add-signal-queue-signal!)p
Fs(,)j(99)581 4194 y Fo(array-set!)p Fs(,)d(35)581 4394
y Fo(atomically!)p Fs(,)h(73)581 4752 y Fo(byte-vector-set!)p
Fs(,)g(33)581 5111 y Fo(call-atomically!)p Fs(,)g(73)581
5310 y Fo(call-ensuring-atomicity!)p Fs(,)i(71)581 5509
y Fo(cell-set!)p Fs(,)d(33)581 5868 y Fo(delete-from-queue!)p
Fs(,)i(34)581 6067 y Fo(delq!)p Fs(,)d(31)581 6267 y
Fo(dequeue!)p Fs(,)h(34)581 6466 y Fo(dequeue-signal!)p
Fs(,)h(99)581 6824 y Fo(enqueue!)p Fs(,)f(34)581 7024
y Fo(ensure-atomicity!)p Fs(,)i(71)581 7382 y Fo(filter!)p
Fs(,)e(31)581 7741 y Fo(jar-put!)p Fs(,)g(79)581 8100
y Fo(kill-thread!)p Fs(,)h(70)581 8458 y Fo(list-delete-neighbor-dups!)
p Fs(,)i(60)581 8658 y Fo(list-merge!)p Fs(,)e(56,)d(58)581
8857 y Fo(list-merge-sort!)p Fs(,)j(58)581 9056 y Fo(list-sort!)p
Fs(,)f(56)581 9255 y Fo(list-stable-sort!)p Fs(,)i(56)581
9614 y Fo(make-table-immutable!)p Fs(,)g(41)581 9813
y Fo(maybe-commit-and-set-condvar!)p Fs(,)1245 10012
y(74)3736 1046 y Fo(maybe-dequeue-signal!)p Fs(,)g(99)3736
1245 y Fo(maybe-dequeue-thread!)p Fs(,)g(76)3736 1611
y Fo(partition-list!)p Fs(,)f(31)3736 1810 y Fo(placeholder-set!)p
Fs(,)g(75,)e(79)3736 2009 y Fo(provisional-byte-vector-set!)p
Fs(,)46 b(72)3736 2208 y Fo(provisional-cell-set!)p Fs(,)59
b(71)3736 2408 y Fo(provisional-set-car!)p Fs(,)g(71)3736
2607 y Fo(provisional-set-cdr!)p Fs(,)g(71)3736 2806
y Fo(provisional-string-set!)p Fs(,)g(72)3736 3005 y
Fo(provisional-vector-set!)p Fs(,)g(71)3736 3371 y Fo(record-set!)p
Fs(,)e(37)3736 3570 y Fo(remove-signal-queue-signal!)p
Fs(,)45 b(99)3736 3769 y Fo(reverse!)p Fs(,)57 b(31)3736
4134 y Fo(set-close-on-exec?!)p Fs(,)i(107)3736 4334
y Fo(set-condvar-has-value?!)p Fs(,)g(74)3736 4533 y
Fo(set-condvar-value!)p Fs(,)g(74)3736 4732 y Fo(set-current-proposal!)
p Fs(,)g(73)3736 4932 y Fo(set-file-creation-mask!)p
Fs(,)g(103)3736 5131 y Fo(set-group-id!)p Fs(,)f(100)3736
5330 y Fo(set-i/o-flags!)p Fs(,)g(108)3736 5529 y Fo(set-user-id!)p
Fs(,)g(100)3736 5729 y Fo(set-working-directory!)p Fs(,)h(102)3736
5928 y Fo(shared-binding-set!)p Fs(,)g(84)3736 6127 y
Fo(sparse-vector-set!)p Fs(,)g(33)3736 6492 y Fo(table-set!)p
Fs(,)e(42)3736 6692 y Fo(terminate-thread!)p Fs(,)h(70)3736
7057 y Fo(vector-delete-neighbor-dups)p Fs(,)45 b(60)3736
7256 y Fo(vector-heap-sort!)p Fs(,)58 b(59)3736 7455
y Fo(vector-insert-sort!)p Fs(,)h(59)3736 7655 y Fo(vector-merge!)p
Fs(,)f(56,)d(59)3736 7854 y Fo(vector-merge-sort!)p Fs(,)k(59)3736
8053 y Fo(vector-sort!)p Fs(,)f(56)3736 8252 y Fo(vector-stable-sort!)p
Fs(,)h(56)3321 10511 y(119)p eop end
%%Trailer

userdict /end-hook known{end-hook}if
%%EOF
